【发布时间】:2020-06-30 19:09:33
【问题描述】:
我是 Angular 9 的新手...我的模板 (theme$) 中有一个 observable,它正在正确更新,并且基于这个 observable 的值,我想通过 javascript 在我的组件定义中进行更改:
<div [class]="'headerWrapper ' + (theme$ | async)">
theme$ 是一个 observable。
我不确定在我的组件中检查此值(即订阅 $theme)更新的正确位置是什么,而不是依赖于模板中的更新值。我试过ngOnChanges 但这仅适用于@Input 道具。我想在我的组件类中编写一个方法,该方法将在每次 $theme 更改时执行(所以不仅仅是 ngOnInit)。
我的组件:
ngOnInit() {
console.log(this, "THE THIS")
this.theme$ = this.dataService.currentTheme;}
我的服务具有可观察性:
import { BehaviorSubject } from 'rxjs';
public themeSource = new BehaviorSubject('dark');
currentTheme = this.themeSource.asObservable();
toggleTheme(theme) {
this.themeSource.next(theme)
}
【问题讨论】:
标签: angular rxjs observable angular9