我有一个具有更改布尔值的服务,我想订阅组件中的布尔更改。如何实现这一目标?
这是我的服务......
private subBoolShowHideSource = new Subject<boolean>();
subBoolShowHide$ = this.subBoolShowHideSource.asObservable();
showHide(eventValue: boolean) {
this.subBoolShowHideSource.next(eventValue);
console.log("show hide service " + eventValue);
}
这是我试图阅读bool值的组件......
boolShowGTMDetails: any;
subscription: Subscription;
constructor(private service: ShowHideService){
this.subscription = this.service.subBoolShowHide$.subscribe(
(data:boolean) => {
this.boolShowGTMDetails = data,
error => console.log(error),
console.log("winner winner chicken dinner");
}
);
}
基本上,变化检测不起作用,非常感谢任何帮助,提前感谢!
答案 0 :(得分:2)
您的订阅中存在一些格式问题。这应该有效:
this.subscription = this.service.subBoolShowHide$.subscribe(
(data:boolean) => { this.boolShowGTMDetails = data },
error => console.log(error),
() => console.log("winner winner chicken dinner")
);
答案 1 :(得分:1)
我发现了我的问题......
我在我的两个组件providers:[ShowHideService],
中都有这个,当然这会创建两个不同的服务实例。所以我从两个组件中删除了这个,只需在我的app.modules中调用一次,一切正常。菜鸟在我的最后移动 facePalm -_-