请求API时视图上看不到任何数据

我想从API检索用户列表。我遇到了类似

的错误
  

找不到类型不同的支持对象“ [object Object]”   '宾语'。 NgFor仅支持绑定到诸如数组之类的Iterables

  

解析已声明的数组时,无法读取未定义的属性'id'   在工厂里

现在我可以解决这些错误,但是现在的问题是,这些错误已经消失,但是我在视图中看不到任何数据。页面只是空白。我真的不知道该如何尝试。奇怪的是,我可以将数据记录在get(用户)中,并且还可以在“网络”标签中看到200成功,但是在我的视图中却无法正常工作。

这是我的服务

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

page.ts

 userList: any[] = [];
...
ngOnInit() {
    this.getallUsers(); // get the users wenn view intializes
}

getallUsers() {
  // get saved list of users
  this.userService.getList().subscribe(response => {
    console.log(response);
    this.userList = response.results;
  });
  }

page.html

<ion-list>

          <ion-item lines="none" *ngFor="let user of userList.results">

              <ion-avatar>
                  <ion-img src="assets/friends1.jpeg"> </ion-img>
              </ion-avatar>


                  <h2 class="title">{{user.username}}</h2>

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

我的回复日志是:

  

结果:(8)[{…},{…},{…},{…},{…},{…},{…},{…}]

dongjiahui 回答:请求API时视图上看不到任何数据

您已经将结果分配给userList,因此它已经是数组,并且将没有results属性。将ngFor中的userList.results更改为userList

*ngFor="let user of userList"

最好使用异步管道,而不是订阅,将组件更改为

userList$ = this.userService.getList().pipe(map(response => response.results));

并在模板中使用异步管道

*ngFor="let user of (userList$ | async)"
本文链接:https://www.f2er.com/3170070.html

大家都在问