2016-07-29 50 views
0

如果你想知道爲什麼我需要這個:是否有任何新的@Input組件的事件?

我有一個顯示手機通訊錄的組件。它獲得應該呈現他的聯繫人的帳戶。

爲了實現在該組件內部的搜索,我應該(糾正我,如果我錯了)做第二個數組,具有所有聯繫人並過濾他。 爲此,我需要知道何時有一個新帳戶進入組件,並在每次出現搜索時更改搜索的新數組。

如果有更聰明的方法來實現搜索和過濾,我希望聽到。但不管怎麼說,我想知道如何知道當一個新的輸入進來

我想有這樣的事情:

export class ContactTable 
{ 
    @Input(newAccountCame) account:Account; 
    private newAccountCame() 
    { 
    //do something with this.account. 
    } 
    ... 
} 

回答

2

可以使用ngOnChanges回調

ngOnChanges(changes: SimpleChanges) { 
    console.log('ngOnChanges - account = ' + changes['account'].currentValue); 
    } 

或者您可以製作account設置器

private _account:Account; 
    @Input() 
    private set newAccountCame(value) 
    { 
    this._account = value; 
    //do something with this.account. 
    } 

您應該知道,如果僅從先前傳入的數組中添加/刪除值,則這些都不會起作用。只有當傳遞了不同的數組時,更改檢測纔會識別它並調用方法或setter。

如果您需要處理這種情況下使用ngDoCheck

+0

感謝您的快速幫助和提示! –

相關問題