我有一个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的一个bug。
处理这个问题的最好方法是什么?跳过漂亮的异步管道,改为订阅FirebaseListObservable,并包含一个指向ion-slides的*ngIf="secrets.length>0"
在这种情况下,离开页面时必须使用unsibscribe()吗?
或者还有更好的解决方案吗?
发布于 2017-05-02 20:00:15
我现在正在使用这个变通方法,将FirebaseListObservable转换为常规的可观察对象,并预加载一个由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();
}
})
}https://stackoverflow.com/questions/43705019
复制相似问题