Service.ts:- 我已经在service.ts文件中创建了一个对象,现在我想使用BehaviorSubject更新对象值,以便可以在不同的组件中使用此更新的对象
private _menuUpdate = {
bankFlag: false,
contactsFlag: false,
educationDataFlag: false,
examFlag: false,
existingRelationShipFlag: false,
nomineeFlag: false,
personalFlag: false,
supportDocsFalg: false,
workExpFlag: false
}
public menuDisableStatus = new BehaviorSubject<Object>(this._menuUpdate);
menuStatus = this.menuDisableStatus.asObservable();
changeStatus(statusObj) {
this.menuDisableStatus.next(statusObj);
}
现在在我的components1.ts示例中
click(){
this.menuDisableStatus.educationDataFlag = true;
this.mliService.changeStatus(this.menuDisableStatus.educationDataFlag);
}
现在在我的components2.ts示例中
this.mliService.menuStatus.subscribe((data) => {
this.menuDisableStatus = data;
});
console.log(this.menuDisableStatus);
在这里控制台给我“ true”,而不是Update对象。
答案 0 :(得分:1)
在component1中,您将changeStatus(以及可观察到的“下一个”)称为主要主题,而不是主要主题的属性。
将其更改为this.mliService.changeStatus(this.menuDisableStatus);
,它应该可以工作