Angular 5: обновление шаблона в цепочке Observable не работает - PullRequest
0 голосов
/ 06 июня 2018

Если у меня есть компонент, и я хочу показать загрузчик

компонент

  ngOnInit() {
    this.route.params
      .do(x => this.contentLoading = true)
      .switchMap(x => this.getClientSearchResults())
      .subscribe(x => {
        this.clientSearchResults = x;
        this.contentLoading = false
      });
  }

шаблон

<mat-progress-spinner *ngIf="contentLoading" color="accent" mode="indeterminate"></mat-progress-spinner>

Загрузчик покажет, когда страница загружается впервые, но тогда любое изменение параметров больше не будет отображать загрузчик.Я вижу, что цепочка Observable работает каждый раз с console.log.ngZone не обнаруживает его, пока он все еще работает с цепочкой наблюдаемых?

1 Ответ

0 голосов
/ 06 июня 2018

switchMap завершит предыдущую наблюдаемую и переключится на новую наблюдаемую.Это означает, что после первого изменения параметра subscribe больше не будет получать будущие изменения.

Я думаю, что вы хотели использовать вместо mergeMap.

https://www.learnrxjs.io/operators/transformation/mergemap.html

...