Поскольку ваш getHomes
вызов асинхронный , Angular пытается отобразить содержимое home.images
до его назначения.После этого home.images
назначается в вашем коде и запускает цикл обнаружения изменений, который заканчивается тем, что ваш *ngFor
успешно работает.
Один из способов справиться с этим - использовать что-то вроде следующего:
<div *ngIf="home">
<div *ngFor="let item of home.images">{{item.name}}</div>
</div>
Это просто гарантирует, что home
не является undefined
перед попыткой обработать *ngFor
, что устранит ошибку консоли.
Другой вариант - использовать оператор безопасной навигации :
Оператор безопасной угловой навигации (?.) - это удобный и удобный способ защиты от нулевых и неопределенных значений в путях свойств.
Это так же просто, как добавить ?
к home
:
<div *ngFor="let item of home?.images">{{item.name}}</div>