如何从字段创建可观察对象

时间:2019-08-23 20:06:52

标签: angular rxjs observable observer-pattern

我有一个名为EditEmployee的类,在其中声明了一个字段:

export class EditEmployee implements OnInit {
  spaceRequirement = 0;
  ...
}

我想将spaceRequirement字段设为可观察,以便在我的ngOnInit()函数中可以做到这一点:

export class EditEmployee implements OnInit {
  spaceRequirement = 0;
  ...
  ngOnInit() {
    this.spaceRequirement.subscribe(spaceReq => {
    //Call some function when spaceRequirement changes
  }
}

如何使spaceRequirement字段为可观察字段,以便只要该值发生更改就可以调用函数?

2 个答案:

答案 0 :(得分:3)

您可以将其设置为BehaviorSubject

spaceRequirement = new BehaviorSubject<number>(0);

然后您可以订阅它。 如果需要更改其值,请致电: this.spaceRequirement.next(NEW_VALUE_HERE);

答案 1 :(得分:0)

您可以有一个getter和setter来访问行为主题并订阅该行为主题以监视更改。

spaceRequirement$ = new BehaviorSubject<number>(0);

get spaceRequirement(): number {
  return this.spaceRequirement$.value;
}

set spaceRequirement(val: number) {
  this.spaceRequirement$.next(val);
}

ngOnInit() {
  this.spaceRequirement$.subscribe(spaceReq => {
  //Call some function when spaceRequirement changes
  }
}