0

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

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

4

2 回答 2

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

于 2018-09-25T20:33:57.300 回答
0

它没有被调用,因为子组件本身正在改变它的内部属性。当实际绑定到该输入属性的某些父组件将更改该输入时,将调用它。

我已经编辑了您的演示并将按钮及其单击处理程序移至父组件。现在,当您单击并更改绑定时,将调用 onChanges 回调。

于 2018-09-25T20:35:06.650 回答