gpt4 book ai didi

javascript - 如何使用behaviorsubject Angular 5更新点击时的对象值?

转载 作者:行者123 更新时间:2023-12-03 00:56:10 25 4
gpt4 key购买 nike

服务.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”而不是更新对象。

最佳答案

在你的组件1中,你调用changeStatus(结果是可观察的“下一个”),而不是主要主题,而是这个主题的属性。

将其更改为 this.mliService.changeStatus(this.menuDisableStatus); 它应该可以工作

关于javascript - 如何使用behaviorsubject Angular 5更新点击时的对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52828865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com