【问题标题】:Google Polymer: Listening to property changes from outside the elementGoogle Polymer:从元素外部监听属性变化
【发布时间】: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;
        [...]
    });
}

你知道我是否可以直接监听属性更改事件吗?

谢谢, 佩德罗

【问题讨论】:

    标签: javascript events callback listener polymer


    【解决方案1】:

    如果您的父元素在 <polymer-element> 内,这是一种简单的“交流”方式 元素之间是在他们的published properties上使用数据绑定:

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

    我们认为这是一种“聚合”的做事方式,因为它具有很强的声明性,并利用了数据绑定等功能。

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

    【讨论】:

    • 应该在哪里定义属性 val ?每个元素或父元素或突变位置?
    猜你喜欢
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2023-02-08
    • 2017-04-19
    相关资源
    最近更新 更多