building.service.ts
getAll(): Observable<BuildingModel[]> {
return this.http.get(this.config.buildings);
}
building.component.ts
getBuildings(){
this.buildingService.getAll().subscribe(buildings => this.buildings = buildings);
return this.buildings;
}
building.component.html
<div *ngFor="let building of getBuildings()">
<p>{{building.name}}</p>
</div>
Начинает зацикливаться вызов бэка, если в ngFor получать массив с помощью метода getBuildings. Но если делать через ngOnInit работает отлично. Почему происходит зацикливание?
Проблема в функции:
getBuildings(){
this.buildingService.getAll().subscribe(buildings => this.buildings = buildings);
return this.buildings;
}
Данная функция вызывается при каждом цикле получения изменений. Сделайте следующим образом:
<div *ngFor="let building of this.buildings">
<p>{{building.name}}</p>
</div>
А функцию getBuildings уже в удобном для Вас месте, переписав её следующим образом:
getBuildings(){
this.buildingService.getAll().subscribe(buildings => this.buildings = buildings);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости