使用Array.push()更改父组件变量不会触发Child Component中的ngOnChanges,将其作为Input()

时间:2017-07-16 18:26:44

标签: angular typescript rxjs

这个掠夺者应该清楚地表明场景和问题是什么......

https://plnkr.co/edit/OJEoafoPZpz8gaxEbTBb?p=preview

app.ts父组件有一个对象数组s2data,它被传递给Data子组件的dropdown.component.ts Input()。

<app-dropdown [Data]="s2data"></app-dropdown>

单击应用程序组件按钮时,会将新对象推送到s2data数组。

onClick() {
  this.s2data.push({
    id: '6',
    text: 'six'
  });
}

JSON字符串正确显示s2data数组已更新。

但是,即使下拉组件Input()已更改,ngOnChanges事件似乎也未被触发,这由ngOnChangeEventCount的未更改计数反映。

所以我的问题是......为什么ngOnChanges没有在子组件中发生,即使输入已经明显改变了。

0 个答案:

没有答案