Angular2。如何观察子对象的变化?

时间:2016-02-02 10:23:55

标签: typescript angular observable

假设我有

的组件
@Input() timeData: TimeData

其中TimeData只包含一个字段:time

我想观察timeData.time假设只有timeData.time被更改(而不是整个timeData

ngOnChanges没有跟踪此类更改,而{{timeData.time}}工作正常。

我的最终目标是设置标记goodTime

if(timeData.time % 10 === 0){
    goodTime = true
}

2 个答案:

答案 0 :(得分:5)

您不会提供有关TimeData看起来如何的信息,但是当您添加EventEmitter时,您可以订阅更改。

class TimeData {
  _time: number;
  get time(): number {
    return this._time;
  }
  set time(value: number) {
    this._time = number;
    timeChange.next(number);
  }
  timeChange: EventEmitter<number> = new EventEmitter<number>();
} 

一样使用它
timeData.timeChange.subscribe((value) => { doSomething(value);}

答案 1 :(得分:0)

之前我没有注意到,但其他人也提出了类似的问题:

How to get onChanges for properties changed on an object sent in for an @Input