Angular 5:更新Observable链中的模板不起作用

时间:2018-06-05 23:37:16

标签: javascript angular angular5 observable

如果我有一个组件并想要显示一个加载器

成分<​​/ P>

  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>

加载器将在第一次加载页面时显示,但是对params的任何更改都将不再显示加载程序。我可以看到Observable链每次运行console.logngZone在运行Observable链时是否检测不到它?

1 个答案:

答案 0 :(得分:0)

switchMap完成之前的observable,并切换到新的observable。这意味着在发出第一个参数更改后,subscribe将不再接收未来的更改。

我认为您想要使用的是mergeMap

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