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

How to update object value on click using behaviorsubject Angular 5?

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 对象。

在您的 component1 中,您调用 changeStatus(结果是可观察对象的 "next")不是针对主要主题,而是针对该主题的 属性。

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