IONI C 4, наблюдаемая подписка дублирует мой html шаблон - PullRequest
1 голос
/ 21 февраля 2020

Я использую сервис, который возвращает заметку для подписки с любой страницы, чтобы хотеть прослушать изменения.

FavoriteService.service.ts:

favorites$ = new Subject<any>();

getObservableFavorite(): Observable<any> {
    return this.favorites$.asObservable();
}

Я подписываюсь на странице панели инструментов DashboardPage.ts:

favorites$: Observable<any>;
favoritesSubscription: Subscription;


constructor(private favService: FavoriteService){
  this.favorites$ = this.favService.getObservableFavorite();
  this.favoritesSubscription = this.favorites$.subscribe((data) => {
    // console.log('event received');
    this.favorites = data;
  });
}

// unsubscribe 
ngOnDestroy() {
    this.favoritesSubscription.unsubscribe();
}

// both, just in case 
ionViewWillLeave() {
    this.favoritesSubscription.unsubscribe();
}

Мой шаблон дублируется, и я не знаю почему!

<div *ngIf="favorites?.length > 0">
     <div class="img-thumb" *ngFor="let fav of favorites">
            <ion-card [style.backgroundImage]="'url(' + fav?.background) + ')'">
            </ion-card>
    </div>
</div>

На другой странице, например MoviesPage Я отправляю тему next() событие через тот же сервис. Как это:

  async makeFavorite(movie) {
      this.favMovies.push(movie)
      this.favService.favorites$.next(this.favMovies)
  }

Я отладил свой код, и когда я получаю событие на приборной панели, данные принимаются без проблем, но шаблон дублируется: /.

Может кто-нибудь помочь мне ? :)

...