Google聚合物:从元素外部聆听属性更改

时间:2014-01-24 01:00:59

标签: javascript events callback listener polymer

我目前正在使用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;
        [...]
    });
}

您知道我是否可以直接听取房产变更事件?

谢谢, 佩德罗

1 个答案:

答案 0 :(得分:7)

如果您的父元素在<polymer-element>范围内,则可以轻松“沟通” 元素之间是使用published properties上的数据绑定:

<parent-element value="{{val}}">
  <some-input value="{{val}}"></some-input>
</parent-element>

我们认为这是“聚合”方式,因为它非常具有声明性并且利用了数据绑定等功能。

如果父级不在Polymer元素中,则可以使用事件委派 就像你建议的那样。我写了一篇关于共享信息的不同方法的文章 您可能会感兴趣的元素:Communication & Message Passing

相关问题