在 Google Polymer 1.0 中是否有另一种方法来观察对象的子 属性 的变化?
Is there another way to observe for changes to a sub property of an object in Google Polymer 1.0?
我已经在 Google Polymer 网站上尝试了深度路径观察示例,但它不适用于我的情况。我想观察的 sub-属性 是一个数组,当我转到不同的散列 url 时它会发生变化。问题是我正在使用处理该更改的库,因此它不使用聚合物的 "push, pop, shift and splice" 并且没有它,聚合物将无法识别数组突变。任何想法将不胜感激!
我在尝试接收计算 属性 中数组更改的通知时遇到了我认为类似的问题。
在我的例子中,我想知道它的子项何时被修改,以便我可以用更改后的子项重新计算其他内容。这是来自聚合物元素的工作代码片段:
properties: {
choices: {
type: Array,
notify: true,
value: []
},
choicesTransposed: {
type: Array,
notify: true,
computed: '_transposeChoices(choices.*)'
}
},
_transposeChoices: function(change) {
var choices = change.base;
// do something with choices
}
最初我有 _transposeChoices(choices)
但当 choices
子项被修改时,它从未被调用。将其更改为 _transposeChoices(choices.*)
然后在计算函数中使用 change.base
就是让事情对我有用的东西。
您可以随时使用 observe-js to observe you object, and interact with Polymer by custom event。
我已经在 Google Polymer 网站上尝试了深度路径观察示例,但它不适用于我的情况。我想观察的 sub-属性 是一个数组,当我转到不同的散列 url 时它会发生变化。问题是我正在使用处理该更改的库,因此它不使用聚合物的 "push, pop, shift and splice" 并且没有它,聚合物将无法识别数组突变。任何想法将不胜感激!
我在尝试接收计算 属性 中数组更改的通知时遇到了我认为类似的问题。
在我的例子中,我想知道它的子项何时被修改,以便我可以用更改后的子项重新计算其他内容。这是来自聚合物元素的工作代码片段:
properties: {
choices: {
type: Array,
notify: true,
value: []
},
choicesTransposed: {
type: Array,
notify: true,
computed: '_transposeChoices(choices.*)'
}
},
_transposeChoices: function(change) {
var choices = change.base;
// do something with choices
}
最初我有 _transposeChoices(choices)
但当 choices
子项被修改时,它从未被调用。将其更改为 _transposeChoices(choices.*)
然后在计算函数中使用 change.base
就是让事情对我有用的东西。
您可以随时使用 observe-js to observe you object, and interact with Polymer by custom event。