我在函数中更新了服务的布尔变量。我想在组件中使用此变量更改,但是服务变量未在组件中更新。
service.ts
isUpdating: boolean;
updateTheVairable() {
this.isUpdating = true;
}
component.ts
methodRequiringUpdateFromService() {
if(this.service.isUpdating) {
//do something
}
}
服务变量中的 isUpdating 变量已分配为true,但未在组件中更新。任何帮助将不胜感激:)
答案 0 :(得分:0)
您可以使用Subject
,或者如果需要初始值,则可以在服务中使用BehaviorSubject
中的rxjs
,然后在组件中进行预订。
服务:
isUpdatingSubject: BehaviorSubject<boolean> = new BehaviorSubject(false); // inital value is "false"
isUpdating = this.isUpdatingSubject.asObservable();
setUpdateState = (newState) => {
this.isUpdatingSubject.next(newState);
}
组件:
ngOnInit(){ // You may use another method, such as "constructor" or custom one
this.service.isUpdating.subscribe((isUpdating) => {
if(isUpdating){
//do something
}
})
}
注意:不要忘记在ngDestroy上取消订阅该服务。
答案 1 :(得分:-2)
您尚未在service.ts中调用方法-updateTheVairable()来设置值。
methodRequiringUpdateFromService(){
this.service.updateTheVairable()
if(this.service.isUpdating){
//do something
}
}