Angular2 Oninit()如何指定要监视的数据绑定属性?

lys*_*030 2 angular

例如,我有两个输入属性:

@Input() field1;
@Input() field2;
Run Code Online (Sandbox Code Playgroud)

每次初始化field1时,我都希望调用function1(); 每次我初始化field2时,我都希望调用function2().我想这与OnInit相似,但并不完全相同.有什么方法可以解决这个问题吗?

谢谢!

Dav*_*d L 5

第一次绑定输入属性(以及随后的每个时间),ngOnChanges根据生命周期文档调用钩子.

您可以将每个属性绑定到SimpleChange公开新状态和以前状态的对象:

ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {
  for (let propName in changes) {
    if (propName === 'field1')
      this.function1();

    if (propName === 'field2')
      this.function2();
  }
}
Run Code Online (Sandbox Code Playgroud)