@Nubbin

Angular 2 ngFor?

Добрый день, не могу понять почему она выдает ошибку

ERROR Error: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.


//Выдает ошибка именно в этом варианте
{"in":{"231":{'name': 'test1'}, "2351":{'name': 'test2'}, "1231":{'name': 'test3'}}


//Тут все нормально
{"in":{"0":{'name': 'test1'}, "1":{'name': 'test2'}, "2":{'name': 'test3'}}


this.getJson().subscribe((data:any) => {
this.listers        = data['in'];
}


<div *ngFor="let item of listers; let i=index"</div>


Ребята помогите пожалуйста, просто мне именно нужен первый вариант
  • Вопрос задан
  • 364 просмотра
Решения вопроса 1
search
@search
мама говорит что я особенный
ngFor не работает с объектами, которые нельзя проитерировать. Нужно привести data['in'] к массиву. Попробуйте так:

this.listers = Object.values(data['in']);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
Вместо this.listers = data['in']; пусть будет

this.listers = Object.entries(data.in).map(([key, val]) => ({ key, val }));

Тогда при переборе listers в ngFor ключи будут доступны как item.key, а значения - как item.val.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы