Angular 2RC4 setter(或检测更改)

时间:2016-08-05 08:31:51

标签: javascript angularjs angular

我的目标是在组件A处于行动时对组件B执行操作。当然,组件A发出事件,这是组件B的输入。它可以工作但不是每个都是。

看看

http://plnkr.co/edit/A3cE4M

当用户从组件A单击删除时,将删除一个元素并发出事件。在组件B中,我显示相同的列表(并且它可以工作)。但是当组件JaroFoo _counter中的使用函数集列表何时应该递增。它仅在init和first remove之后递增。

我不知道为什么。每当_list发生变化时,我该怎样强制增加这个增量?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这是预期的行为。输出多次发出相同的数组。只有第一次被识别为已更改(从null到数组)。随后当再次发出相同的数组时,更改检测不会将其视为更改并且不会发生更新,因此不会调用setter。

如果使用

在每次修改后创建数组的副本
this._list = this._list.slice();

然后识别每个更改,因为slice()创建了一个新的数组实例。

Plunker example