以编程方式设置观察块(而不是静态对象)?

时间:2014-11-20 00:59:35

标签: polymer

而不是:

聚合物({       观察:{         'key1':'onDataChange',         'key2':'onDataChange'       },

可以以编程方式为任何数据属性数据更改(顶级)执行观察器函数吗?我尝试通过循环遍历this.attributes来创建一个观察块对象后设置this.observe,但这不起作用。

1 个答案:

答案 0 :(得分:0)

我认为在observe块的键中不支持“通配符”,但是您可以指定一个以空格分隔的属性列表,这些属性共享相同的数据更改的观察器功能。

E.g。

observe: {
  'key1 key2': 'onDataChange'
}

您可以看到它的真实示例in the <google-youtube-video-wall> element

(我不确定为什么它是not documented。我会跟进。)

使用observe块的替代方法是为attributeChanged element lifecycle event添加回调,例如:

Polymer({
  // ...
  attributeChanged: function(attrName, oldVal, newVal) {
    console.log(attrName, 'old: ' + oldVal, 'new:', newVal);
  }
  // ...
});