如何知道@Input何时发生变化?

时间:2016-03-01 04:23:18

标签: angular

我将不同的id从父组件传递给子组件。

// 父组件

<child-component id={{id}}></child-component>

// 子组件

@Input('id') id:string;

如何在id更改时获取活动?我希望在子组件中id更改时运行一个函数。

由于

2 个答案:

答案 0 :(得分:4)

实施ngOnChanges(changes)。当输入值改变时调用它。

ngOnInit()

之前调用一次

答案 1 :(得分:1)

你也可以写一个二传手。根据我的经验,当@Input()在数组上时,既不调用setter也不调用ngOnChanges,因为在这种情况下数组的引用不会改变。幸运的是,如果数组项目发生变化,则会调用ngDoCheck。

https://angular.io/docs/ts/latest/cookbook/component-communication.html