FirebaseListObservable и ионные слайды не работают

У меня есть 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 ответ

Сейчас я использую этот обходной путь, преобразовывая 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();
      }
    })
  }
Другие вопросы по тегам