Какое значение взять, чтобы получить данные API в представлении? - PullRequest
1 голос
/ 03 ноября 2019

Я подключаю API к внешнему приложению. В этом случае здесь я хочу получить список пользователей. Я написал сервис:

getList(): Observable<any[]> {
    return this.http.get<any[]>(`${this.url}/users`)
    .pipe(
      retry(2),
     // catchError(this.handleError)
    );
  }

и при вызове в page.ts:

 ngOnInit() {
    this.getAllUsers(); // get the users wenn view intialize
    }

getAllUsers() {
    // Get saved List of Users
    this.userService.getList().subscribe(response => {
      console.log(response);
      // this.userList = response;
    });
  }

я получаю данные, когда просматриваю вкладку своей сети в инструменте разработчика,это выглядит так: results: [{url: "url", id: 1, username: "UserOne"}]

И мой page.html я хочу отобразить эти данные с интерполяцией строк

 <ion-list  class="pad" mode="ios">

          <ion-item lines="none" *ngFor="let user of (results | async)">
               <ion-label text-wrap>
                  <h2 class="title">{{user.username}}</h2>
                </ion-label>

              </ion-item>
        </ion-list>

Удивительно, но я не получаю сообщение об ошибке и не могускажи что не так. Это принципиально правильно для вызова данных для представления, как это, или я сделал что-то не так?

1 Ответ

3 голосов
/ 03 ноября 2019

Я подозреваю, что вы перепутали subscribe(..) и канал async.

Канал async ожидает наблюдаемого (например: this.userService.getList()).

Меня можно использовать так:

*ngFor="let user of userList$ | async)"

с

userList$: Observable<any[]>
this.userList$ = this.userService.getList();

Или, если вы решили подписаться на свой компонент:

userList:any[] = [];

this.userService.getList().subscribe(response => {
    this.userList = response;
});

с:

*ngFor="let user of userList"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...