Компонент не отображает данные из моего API

Я пытаюсь загрузить и отобразить список пользователей из своего API, но мой список не отображается после завершения загрузки страницы.

Мне нужно сделать другое взаимодействие (например, нажать кнопку), чтобы отобразить список. просмотр моего примера

Но когда я загружаю пользователей из «моков», у меня нет проблем

мой компонент:

import { Component,ViewEncapsulation, OnInit} 	from '@angular/core';
import { UserService }                          from './services/user.service';
import { User } 							    from './class/user'
import { Observable, BehaviorSubject} 		    from "rxjs";

@Component({
    selector: 'my-app',
    template: `
    <li *ngFor="let user of users" >{{user.username}}</li>
	<span (click) = 'log'>log</span>
    `
})
export class AppComponent {
	users : User[] 

	constructor( private userService: UserService){ }

	ngOnInit(){
		this.userService
		    .getUsers()
		    .then((res) => { 
		                     if (res.users){
                                        this.users = res.users;} 
				    });
	}

	log(){
		console.log(this.users)
	}

мой сервис:

import { Injectable }                 from '@angular/core';
import { Headers, Http, Response }    from '@angular/http'; 
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';
import { LocalStorage }               from '../class/local-storage';
import { User }                       from '../class/user';

@Injectable()
export class UserService {

    private apiUrl = 'https://localhost:4000/';
    users : User[];
    private token = localStorage.getItem('token');
  
  constructor(private http : Http) {}

  getUsers(){
        return this.http
                   .get(this.apiUrl + 'users?token=' + this.token)
                   .toPromise()
                   .then(res => res.json())
  }
}


person KeiZ    schedule 30.08.2016    source источник
comment
в чем ошибка?   -  person Pardeep Jain    schedule 30.08.2016
comment
нет ошибки, мой список не появляется, я должен что-то сделать на своей странице (например, нажать на кнопку), и мой список появляется. ссылка   -  person KeiZ    schedule 30.08.2016
comment
какой ответ возвращает ваш API? можешь показать ответ   -  person Pravin Tukadiya    schedule 30.08.2016
comment
мой API возвращает объект json следующим образом: { "page": 1, "users": [ { "id": 32, "username": "admin", "password": "admin", "salt": "wL2OB6ylkNK7rrd81OFwPg+FnJi09yKgBg7b1EtitnUJfHF+dZmltxl/NKRgtCTq+", "createdAt": "2016-08-25T13:14:03.000Z", "updatedAt": "2016-08-25T13:14:03.000Z" } ] }   -  person KeiZ    schedule 30.08.2016


Ответы (1)


<span (click)='log'>log</span> 

должно быть

<span (click)='log()'>log</span>

также попробуйте использовать elvis operator т.е. ? вот так

<li *ngFor="let user of users" >{{user?.username}}</li>

это означает, что всякий раз, когда данные доступны, они будут отражать изменения и не позволяют angular показывать ошибку,

тем не менее, если у вас есть какие-либо проблемы, предоставьте plunker свой plunker и прокомментируйте здесь, нужна ли какая-либо проблема.

person Pardeep Jain    schedule 30.08.2016
comment
спасибо за ваш ответ, но нет никакой разницы, когда я загружаю пользователей из макетов, у меня нет проблем. Я думаю, что моя проблема связана с вызовом моей службы - person KeiZ; 30.08.2016