Javascript 聚合物:用复合观察者观察阵列突变
我想要一个观察数组和属性变化的复杂观察者:Javascript 聚合物:用复合观察者观察阵列突变,javascript,arrays,polymer,polymer-1.0,observers,Javascript,Arrays,Polymer,Polymer 1.0,Observers,我想要一个观察数组和属性变化的复杂观察者: properties: { list: { type: Array, value: ["foo"], }, prop: { type: Number, value: 10, } }, observers: [ 'onChange(prop, list.splices)', ], onChange: function() { console.log('something changed!');
properties: {
list: {
type: Array,
value: ["foo"],
},
prop: {
type: Number,
value: 10,
}
},
observers: [
'onChange(prop, list.splices)',
],
onChange: function() {
console.log('something changed!');
},
这仅在原始列表中的某些内容发生更改后有效,但在初始化这两个属性后,以及在原始列表中的任何内容发生更改之前prop
发生更改时,都不会触发此操作
奇怪的是,如果我放置两个观察者,一个用于prop
,另一个用于list.patches
,它们会按预期工作,并在初始化时触发。(编辑:此行为没有可用的选项)
同时观察数组突变和属性更改的正确方法是什么?我当前的解决方法是使用两个调用相同函数的观察程序:
observers: [
'onChange(prop, list.splices)',
'onChange(prop, list)',
],
我目前的解决方法是让两个观察员调用相同的函数:
observers: [
'onChange(prop, list.splices)',
'onChange(prop, list)',
],
试试这个
observers: [
'onChange(prop, list.*)',
],
试试这个
observers: [
'onChange(prop, list.*)',
],
美好的我觉得如果列表太大或项目太复杂,使用通配符可能会影响性能。但是我找不到任何支持这一点的信息,你知道吗?根据
Polymer的文档通配符用于观察突变和子属性的变化。所以,与splice
相比,它应该对性能有影响,但不确定根据list.Nice的大小,它会有多大的影响。我觉得如果列表太大或项目太复杂,使用通配符可能会影响性能。但是我找不到任何支持这一点的信息,你知道吗?根据Polymer的文档通配符用于观察突变和子属性的变化。所以,与splice
相比,它应该会对性能产生影响,但不确定根据列表的大小,它会产生多大的影响。