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
相比,它应该会对性能产生影响,但不确定根据列表的大小,它会产生多大的影响。