FirebaseListObservable和ion-slides无法正常工作

时间:2017-04-30 09:42:40

标签: firebase ionic2 angularfire2 ion-slides

我有一个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()

或者有更好的解决方案吗?

1 个答案:

答案 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();
      }
    })
  }