Angular 2如果对象属性已更改,则更新@input值

时间:2017-03-05 02:26:09

标签: angular observable

我有一个ListComponent和一个ListItemComponent,其输入值来自ListComponent,如果List的ListComponent Observable值改变了ListItemComponent值,也应该改变它来实现它吗?谢谢

1 个答案:

答案 0 :(得分:0)

因此传统上使用ngOnChanges会在@Input更新时触发。但是,为了减少计算负担,Angular将仅检查对象引用以查看对象中是否发生了更改。

更改对象引用应该可以实现 - 所以请确保不要改变对象,而是将其重新分配或将其克隆回自身。

示例:

//don't do this

myArray[0] = "1"

//do this

myArray = [1].concat(myArray.slice(1));

当然,孩子应该有原始参考,这将反映为它是相同的对象参考。因此,如果你真的需要触发ngOnChanges,你应该只使用与上面类似的东西。