Angular ngOnChanges不被调用

时间:2018-09-25 20:28:26

标签: angular ngonchanges

更改Input属性时,Angular不会调用更改检测。我已经知道,除非绑定发生变化,否则angular不会调用onChanges,但是在此示例中,我已将输入绑定到ng datePicker模型,但是仍然不会调用ngOnChanges。

下面是附加的stackBlitz示例: https://stackblitz.com/edit/angular-zvpice

2 个答案:

答案 0 :(得分:0)

如果您在父组件中对其进行更改,则会在子组件中调用ngOnChanges。

对此进行测试,在parent.ts中添加ngOnInit,如下所示,其余代码保持不变:

ngOnInit() {
  setTimeout(() => {
    this.minDate = {year: 2019, month: 4, day: 4};
  }, 3000)
}

或者看到这场突击https://stackblitz.com/edit/angular-zvpice-slhbxd

在孩子中更改minDate不会调用ngOnChanges

答案 1 :(得分:0)

之所以没有被调用是因为子组件本身正在更改其内部属性。当实际上绑定到该输入属性的某些父组件将更改该输入时,将调用该方法。

我有edited your demo,并将按钮及其点击处理程序移到了父组件。现在,当您单击并更改绑定时,将调用onChanges回调。