更改Input属性时,Angular不会调用更改检测。我已经知道,除非绑定发生变化,否则angular不会调用onChanges,但是在此示例中,我已将输入绑定到ng datePicker模型,但是仍然不会调用ngOnChanges。
下面是附加的stackBlitz示例: https://stackblitz.com/edit/angular-zvpice
答案 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回调。