javascript - Polymer - 如何将观察者附加到阵列?

标签 javascript polymer

如何将观察者附加到作为数组的 polymer 属性?需要明确的是,我想要在数组中的项目发生变化时进行回调。为简单起见,假设我的数组是:

[
    { text: 'foo' },
    { text: 'bar' }
]

我想要这样的东西:

observe : {
    'items.text' : 'itemsChanged'
}

以下是有效的,但显然是不可持续的:

observe : {
    'items[0].text' : 'itemsChanged',
    'items[1].text' : 'itemsChanged'
}

请注意,在我的例子中,更改来 self 可以控制的另一个 polymer 元素。因此,如果我能以某种方式触发控制 { text: 'foo' } 的元素的更改,那也可以。

最佳答案

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

the changes are coming from another polymer element that I have control over

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

关于javascript - Polymer - 如何将观察者附加到阵列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24639507/

相关文章:

javascript - 跟随鼠标移动时背景放大不正确

javascript - jquery选择器使用 'not:'两次

css - 造型 polymer 元素的可扩展设置

javascript - 让加载屏幕与 Polymer 配合使用

polymer - 如何删除或取消注册已注册的自定义元素?

javascript - 使用JSON创建polymer core-menu/core-submenu

javascript - 用于循环更改jQuery中下拉菜单的值

javascript - 为什么 Angular 仍然将请求编码为 JSON? ( $http, $httpParamSerializerJQLike )

javascript - 遍历数组的数组

javascript - ShadowRoot 的 getSelection().getRangeAt(0) 在 Google Chrome 35 中返回不正确的 Range 对象