簡體   English   中英

檢測輸入中的更改以執行角度2中的另一個功能

[英]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
}

參考: https : //angular.io/api/core/OnChanges

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM