嗨,所有人,並感謝您的幫助提前... 我正在建立一個應用程序,我想有一個服務,是用來處理一些配置和它由不同的模塊共享。 我真的不知道這是否是最好的方法,但我使用這個,因爲angularJS。角2和rxjs服務主體沒有正在更新組件
配置服務
sidebarCompress: Subject<boolean> = new Subject<boolean>();
public sidebarCompressed: Observable<boolean> = this.sidebarCompress.asObservable();
constructor() {}
compressSidebar(val: boolean = false) {
this.sidebarCompress.next(val);
// this is firing when used
console.log('changed on service');
}
邊欄組件
constructor(
private conf: ConfigService,
) {
conf.sidebarCompressed.subscribe(
sidebarCompressed => {
// this is not firing
console.log('changed on sidebar component');
});
}
任何其它組分
constructor(
private conf: ConfigService,
) { }
ngOnInit() {
// The idea is to use it in a fn (not always on init)
this.conf.compressSidebar(true);
}
所以,邊欄組件訂閱不起作用,任何人都知道我在這裏做錯了什麼,或者如果我應該採取不同的做法!?
再次,非常感謝。
你在哪裏提供'ConfigService'? –
'ConfigService'在每個模塊中提供。 在這種情況下,我有模塊,我有'SidebarComponent'和一個懶惰的加載模塊調用與試圖壓縮側邊欄的組件。 這兩個模塊都提供了'ConfigService' ... 我也提供'app.module'以及... –