我有一个对象的数组,具有属性name
和age
。该阵列的名称是person
。角度2视图不更新阵列更改
问题是当我更新作为数组的元素的属性:
this.person[0].name = "godfather";
原始阵列被更新,但组件视图保持原样。我发现问题是角度变化检测不考虑数组内的更新作为更改。所以,我想下面的语句(变化参考阵列):
this.person = this.person.slice();
我只是想知道,使用后声明一个很好的做法还是有一些更好的方法来解决上述问题?
什么是更好的解决方案? – mishap
可观察或使用IterableDiffer https://github.com/angular/angular/blob/14ee75924b6ae770115f7f260d720efa8bfb576a/modules/%40angular/common/src/directives/ng_for.ts#L111,也许是其他人。取决于具体的用例。 –