如何将事件侦听器添加到Polymer中的自定义元素属性?

时间:2015-12-05 13:22:42

标签: polymer polymer-1.0

我有一个具有data属性的子自定义元素 我的目标是在父元素的上下文中为此属性分配一个事件监听器(使用javascript而不是{{}}数据绑定语法)。

我搜索这样的东西:

ready(){
    this.addEventListener(this.$.childElememt.data, _onChildDataChange);
},

_onChildDataChange() {   
   //called when data property of child elememt changes     
}

1 个答案:

答案 0 :(得分:4)

在Polymer中,对其设置notify: true的属性将导致该元素触发其父级可以侦听的非冒泡<property>-changed事件。

我怀疑你可以通过这样的方式手动监听这个事件(假设子属性设置为通知):

ready() {
    this.$.childElement.addEventListener('data-changed', this._onChildDataChange.bind(this));
},

_onChildDataChange() {   
   //called when data property of child element changes     
}

但是,这实际上等同于在父属性上使用观察者对子进程使用双向数据绑定语法,因此我建议您尽可能地使用它。数据绑定基本上已经为你做了完全相同的事情。