0

我有一个 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"to ion-slides?

在这种情况下,我必须unsibscribe()在离开页面时使用吗?

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

4

1 回答 1

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();
      }
    })
  }
于 2017-05-02T12:00:15.293 回答