2016-07-29 57 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

感谢您的快速帮助和提示! –

相关问题