【发布时间】:2017-12-23 17:16:36
【问题描述】:
我正在尝试使用 angular2 中的“主题”类将事件作为可观察对象广播,从服务到其中包含该服务实例的所有组件。
在我的服务中,我有以下几点:
private loggedIn = new Subject<boolean>();
isUserLoggedIn(): Observable<boolean>
{
return this.loggedIn.asObservable();
}
test()
{
this.loggedIn.next(true);
}
然后在使用此服务的组件中,我有(_auth 与上面定义的服务相同):
ngOnInit()
{
console.log("yay!");
this._auth.isUserLoggedIn()
.subscribe(
d => {
console.log(d);
},
d => {
console.log(d);
},
() => {
console.log("Done!");
}
);
}
现在的问题是,如果我在同一个组件中调用服务的方法this._auth.test();,一切正常,console.log 行将在此组件中执行。但是,如果从另一个组件调用服务的方法,则不会触发该组件来运行 console.log 行。
即使服务的方法被另一个组件触发,如何确保该组件中的代码运行? (假设两个组件同时渲染)。
谢谢!
【问题讨论】:
标签: angular rxjs angular2-services angular2-components angular2-observables