Google Polymer:从元素外部监听属性变化
Posted
技术标签:
【中文标题】Google Polymer:从元素外部监听属性变化【英文标题】:Google Polymer: Listening to property changes from outside the element 【发布时间】:2014-02-14 20:17:31 【问题描述】:我目前正在使用 Google Polymer 构建控件。我想知道是否可以从元素外部监听属性更改事件。我目前的解决方法是在调用我从其他元素监听的 propertyChanged 方法时触发一个显式事件。
// 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】:如果您的父元素在 <polymer-element>
内,这是一种简单的“交流”方式
元素之间是在他们的published properties上使用数据绑定:
<parent-element value="val">
<some-input value="val"></some-input>
</parent-element>
我们认为这是一种“聚合”的做事方式,因为它具有很强的声明性,并利用了数据绑定等功能。
如果父元素不在 Polymer 元素中,您可以使用事件委托 就像你建议的那样。我写了一篇关于共享信息的不同方法的文章 跨越您可能会感兴趣的元素:Communication & Message Passing
【讨论】:
应该在哪里定义属性 val ?每个元素或父元素或突变位置?以上是关于Google Polymer:从元素外部监听属性变化的主要内容,如果未能解决你的问题,请参考以下文章
“Uncaught TypeError:无法使用Polymer 3和polymerfire3读取属性'push'of null”