[英]Detect changes in Input to execute another function in angular 2
我有兩個組件(父組件和子組件),即時消息將帶有名稱項目的自定義對象發送到子組件,並且它會正確更新/顯示,但是當發生此更改時,我想在子組件中執行另一個功能。 是否可以檢測到項目對象何時更新,然后在子組件中運行該函數?
到目前為止,我已經通過以下代碼實現了某些目標,但是我不確定這是否是正確的方法。
ngDoCheck() {
if (this.oldVal !== this.project.startTime) {
this.theFunctionThatIWantToRun();
this.oldVal = this.project.startTime;;
}
}
編輯:我忘了提到輸入是一個復雜的對象,具有數組和不同的屬性類型。 在代碼示例中,Im僅比較對象的一種屬性。
在您的子組件中:
實現OnChanges
接口,然后將ngOnChanges
函數ngOnChanges
到您的組件中,如下所示。 您可以在那里准確檢查更改了哪個Input參數:
@Input() prop: number;
ngOnChanges(changes: SimpleChanges) {
// changes.prop contains the old and the new value
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.