聚合物 - 如何将观察者附加到数组?

Mar*_*ahn 6 javascript polymer

如何将观察者附加到作为数组的聚合物属性?要清楚,我希望在数组中的项更改时进行回调.为简单起见,假设我的数组是:

[
    { text: 'foo' },
    { text: 'bar' }
]
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

observe : {
    'items.text' : 'itemsChanged'
}
Run Code Online (Sandbox Code Playgroud)

以下作品,但显然是不可持续的:

observe : {
    'items[0].text' : 'itemsChanged',
    'items[1].text' : 'itemsChanged'
}
Run Code Online (Sandbox Code Playgroud)

请注意,在我的情况下,更改来自我控制的另一个聚合物元素.因此,如果我能够以某种方式触发对具有控制权的元素的更改{ text: 'foo' },那么也可以.

Sco*_*les 3

需要明确的是,Polymer 会自动观察数组,但“ArrayObserver”只会告诉您是否 (a) 数组本身被替换或 (b) 项目被添加、删除或重新排列。就像被观察的对象一样,Polymer 不会自动观察子对象的属性。

这些变化来自我可以控制的另一种聚合物元素

通常情况就是这种情况,我们通常让元素执行更改触发事件以进行通信。