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

duo*_*lum 1 observable typescript angular

假设我有组件

@Input() timeData: TimeData
Run Code Online (Sandbox Code Playgroud)

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

我想观察timeData.time,假设只是timeData.time改变了(不是整体timeData)

ngOnChanges没有跟踪这种变化,而{{timeData.time}}工作完美.

我的最终目标是设置旗帜 goodTime

if(timeData.time % 10 === 0){
    goodTime = true
}
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 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>();
} 
Run Code Online (Sandbox Code Playgroud)

用它就像

timeData.timeChange.subscribe((value) => { doSomething(value);}
Run Code Online (Sandbox Code Playgroud)