@Input() timeData: TimeData
部件,其中TimeData
只包含一個字段:time
。
我要觀察timeData.time
,假設只有timeData.time
改變(不是整個timeData
)
ngOnChanges
不跟蹤這種變化,而{{timeData.time}}
可以完美運行。
我的最終目標是把標誌goodTime
if(timeData.time % 10 === 0){
goodTime = true
}
@Input() timeData: TimeData
部件,其中TimeData
只包含一個字段:time
。
我要觀察timeData.time
,假設只有timeData.time
改變(不是整個timeData
)
ngOnChanges
不跟蹤這種變化,而{{timeData.time}}
可以完美運行。
我的最終目標是把標誌goodTime
if(timeData.time % 10 === 0){
goodTime = true
}
你不提供有關TimeData
的樣子,但是當你添加一個EventEmitter
可以SUBCRIBE到變化的信息。
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);}
餘did't注意到過,但別人也提出了類似的問題:
How to get onChanges for properties changed on an object sent in for an @Input
是 - 這正是我需要的。非常感謝你:-) 但是我想知道Angular2是如何做到的。 {{timeData.time}}工作,沒有額外的字段(timeChange,_time)。 –
在每個更改檢測週期中檢查所有綁定。你也可以通過在你的組件中實現'doCheck()'並且比較以前的值和當前的值。 –