聚合物:复杂的观察者观察阵列突变
问题描述:
我希望有一个复杂的观察者是观察和修改数组的属性:聚合物:复杂的观察者观察阵列突变
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)
什么是在同一时间观察对数组突变和属性的更改的正确方法?
答
我目前的解决方法是有两名观察员调用相同的功能:
observers: [
'onChange(prop, list.splices)',
'onChange(prop, list)',
],
答
试试这个
observers: [
'onChange(prop, list.*)',
],
尼斯。我觉得如果列表太大或项目太复杂,使用通配符会影响性能。但是我找不到任何支持这种信息的信息,你知道吗? – pomber
根据'聚合物'的文档'通配符'用于观察变化'突变'和'子属性'。因此,与“拼接”相比,它应该对性能产生影响,但不清楚它会根据列表大小产生多大的影响。 – a1626