聚合物:用复杂的观察者观察阵列突变

时间:2016-10-01 19:01:11

标签: 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!');
},

只有在原始列表中发生更改后才会起作用,但在初始化两个属性后都不会触发,也不会在原始列表中的任何更改之前prop更改时触发。

奇怪的是,如果我放置两个观察者,一个用于prop,一个用于list.splices,它们按预期工作,在初始化时触发。 (编辑:此行为有an issue

同时观察阵列突变和属性变化的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

试试这个

observers: [
  'onChange(prop, list.*)',
],

答案 1 :(得分:0)

我目前的解决方法是让两个观察者调用相同的函数:

observers: [
  'onChange(prop, list.splices)',
  'onChange(prop, list)',
],