我目前正在使用Google Polymer构建控件。我想知道是否有可能从元素外部听取属性更改事件。我目前的解决方法是在调用propertyChanged-method时从我的其他元素中调用一个显式事件。
// Property change in child element
Polymer('some-input', {
valueChanged: function() {
this.fire('valueChanged', this.value)
}
});
[...]
// Listening in the parent element
ready: function() {
this.$.someinput.addEventListener('valueChanged', function(evt) {
var value = evt.detail;
[...]
});
}
您知道我是否可以直接听取房产变更事件?
谢谢, 佩德罗
答案 0 :(得分:7)
如果您的父元素在<polymer-element>
范围内,则可以轻松“沟通”
元素之间是使用published properties上的数据绑定:
<parent-element value="{{val}}">
<some-input value="{{val}}"></some-input>
</parent-element>
我们认为这是“聚合”方式,因为它非常具有声明性并且利用了数据绑定等功能。
如果父级不在Polymer元素中,则可以使用事件委派 就像你建议的那样。我写了一篇关于共享信息的不同方法的文章 您可能会感兴趣的元素:Communication & Message Passing