我有两个可观察的反对http api的工作 一个是要求地方,第二个是活动。
请求事件的那个返回哈希:
place_id => events_arr
我的代码显示
<ng-container *ngFor="let place of placesData">
<ion-item>
<h1>{{place.name}}</h1>
<ion-slides>
<ng-container *ngFor="let event of eventsData[place.id]">
<ion-slide>
<h1>{{event.title}}</h1>
</ion-slide>
</ng-container>
</ion-slides>
</ion-item>
</ng-container>
我的问题是placesData
可观察性比eventsData
快,因此eventsData[place.id]
会引发以下异常:
TypeError: Cannot read property '12' of undefined
有什么想法吗?
答案 0 :(得分:4)
选项1将使用*ngIf
,因为@mickdev已通过评论指出。
选项2将使用forkJoin()
。
Observable.forkJoin(
yourPlacesFunctionReturningAnObservable(),
yourEventsFunctionReturningAnObservable())
.subscribe(result => {
this.placesData = result[0];
this.eventsData = result[1];
});
forkJoin
将“等待”直到所有可观测量完成。
docs:https://www.learnrxjs.io/operators/combination/forkjoin.html