我希望有一个聚合物元素,它与所有实例共享一个数组。如果我不使用函数来实例化数组,那么这是可能的。这很好用。当我使用this.push(“ArrayPath”,Value)更改数组元素时,比只通知当前实例,但不是全部通知。我想要的是有一个计算的布尔属性,它监听数组的变化,我有什么:
Polymer({
is: 'data-holder',
properties: {
editedFields: {
type: Array,
notify: true,
value: []
},
unsaved: {
type: Boolean,
notify: true,
reflectToAttribute: true,
computed: '_isUnsaved(editedFields.*)'
}
},
_isUnsaved: function(array) {
return (array.base.length > 0) ? true : false;
},
_addItem: function(value) {
this.push("editedFields", value);
},
....
好到目前为止一切顺利。使用_addItem函数,我将一个项添加到editedFields数组,并调用我的_isUnsaved函数。这可以。但是这只在我调用_addItem方法的实例中调用。在所有实例中都更改了“editedFields”数组,但只在当前实例中通知了“unsaved”属性?
如何管理它以使所有实例都听取阵列更改?这样所有实例都将属性“unsaved”赋予元素声明?
顺便说一句。 _addItem方法的value参数是一个确保唯一性的对象