TLDR:可观察对象在用户做出操作之前不会触发组件重新渲染(例如单击按钮)。
我正在更新一个由 BehaviorSubject 支持的 observable,该 BehaviorSubject 包含在注入到我的组件中的服务中。
在我的组件中,我使用一个简单*ngIf="myObservable$ | async"
的来显示一个 div。
我设法复制了两种情况,一种有效,另一种无效,但我不明白有什么区别:
//CASE 1
this._mySubject$.next(true); //THIS DOES TRIGGER RERENDERING
//CASE 2
this.http.get(url)
.map( res => res.json() )
.subscribe( body => {
this._mySubject$.next(true); //THIS DOESN'T TRIGGER RERENDERING UNTIL AN ACTION IS MADE
});