2014-01-24 43 views
5

我目前正在使用Google Polymer构建控件。我想知道是否有可能从元素外部听取房地产变化事件。我目前使用的解决方法是在调用propertyChanged方法时触发显式事件,以便从其他元素侦听。Google聚合物:聆听元素外部的财产变化

// 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; 
     [...] 
    }); 
} 

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

感谢, 佩德罗

回答

7

如果你父元素是<polymer-element>,一个简单的方法内“沟通”的元件之间 是使用数据绑定上的published properties

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

我们考虑这是“聚合物”方式来做事情,因为它是非常声明性的,并且利用了数据绑定等功能。

如果父项不在Polymer元素中,则可以按照您的建议使用事件委托 。我写了一篇关于分享信息的不同方法的文章 您可能会感兴趣的内容:Communication & Message Passing

+1

链接已死:( – leech