我有一个FirebaseListObservable,想要迭代生成的元素来创建离子幻灯片:
<ion-slides [initialSlide]="currentDay - 1">
<ion-slide *ngFor="let secret of secrets | async let i = index;">
<big-secret-card [secret]="secret"></big-secret-card>
</ion-slide>
</ion-slides>
但是,当我这样做时,initialSlide
不起作用。我认为这可能是ion-slides
的错误。
处理此问题的最佳方法是什么?跳过漂亮的异步管道并订阅FirebaseListObservable
代替*ngIf="secrets.length>0"
到ion-slides
?
在这种情况下,我是否必须在离开页面时使用unsibscribe()
?
或者有更好的解决方案吗?
答案 0 :(得分:1)
我现在正在使用此解决方法,将FirebaseListObservable转换为常规Observable并使用7个空对象的数组预加载。它适用于我的情况:
getWeek(week): Observable<any> {
// get all secrets of one week into an array
let emptyWeek = [{},{},{},{},{},{},{}];
return Observable.create(observer => {
observer.next(emptyWeek);
let week$ = this.af.database.list('/dhsweek/en/week)).subscribe(result => observer.next(result));
return () => {
// unsubscribe function called automatically by async pipe when leaving page
week$.unsubscribe();
}
})
}