Угловой 7 Не удается найти другой поддерживающий объект '[object Object]' типа 'object'.NgFor поддерживает только привязку к итерациям, таким как массивы - PullRequest
0 голосов
/ 19 февраля 2019

Я получаю ошибку при получении данных из базы данных.

Невозможно найти другой поддерживающий объект '[object Object]' типа 'object'.NgFor поддерживает только привязку к Iterables, таким как массивы.

Я перепробовал все оставшиеся ответы, но не получил точное решение.

my service.ts :

  users: User[];
  getAllUsers(){
    return this.http.get(environment.apiBaseUrl + '/users');
  }

my component.ts :

  refreshUserList(){
    this.userService.getAllUsers().subscribe((res) => {
      this.userService.users = res as User[];
    })
  };

my component.html :

<tr *ngFor="let use of userService.users">
  <td>{{ use.fullName }}</td>
</tr>

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вы должны хранить своих пользователей в локальном массиве User в компоненте, а пользователь *ngFor в users.docs

component.ts :

users: User[];

refreshUserList(){
    this.userService.getAllUsers().subscribe(res => {
      res !== null : this.docs = res.docs;
    })
};

component.html :

<tr *ngFor="let user of users?.docs">
  <td>{{ user.fullName }}</td>
</tr>
0 голосов
/ 19 февраля 2019

Итак, используйте ниже, поскольку вы можете видеть, что ответ не является массивом, но одно из его полей является массивом.Итак, вы должны выполнить итерацию в поле массива.

*ngFor="let use of userService.users?.docs"
...