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

Polymer: Observing array mutations with complex observer

本文关键字:观察 阵列 突变 观察者 复杂 聚合物      更新时间:2023-09-26

我想要一个复杂的观察者来观察数组和属性的变化:

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,它们按预期工作,在初始化时被触发。(编辑:这个行为有一个问题)

同时观察数组变化和属性变化的正确方法是什么?

试试这个

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

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

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