如何将事件侦听器添加到 Polymer 中的自定义元素 属性?
How to add an event listener to a custom element property in Polymer?
我有一个带有 data
属性 的子自定义元素。
我的目标是在父元素的上下文中为此 属性(使用 javascript 而不是 {{}} 数据绑定语法)分配一个事件侦听器。
我搜索这样的东西:
ready(){
this.addEventListener(this.$.childElememt.data, _onChildDataChange);
},
_onChildDataChange() {
//called when data property of child elememt changes
}
在 Polymer 中,设置了 notify: true
的属性将导致元素触发其父元素可以监听的非冒泡 <property>-changed
事件。
我怀疑您可以通过执行以下操作手动收听此事件(前提是子 属性 设置为通知):
ready() {
this.$.childElement.addEventListener('data-changed', this._onChildDataChange.bind(this));
},
_onChildDataChange() {
//called when data property of child element changes
}
但是,这实际上等同于仅在子对象上使用双向数据绑定语法,在父对象上使用观察者 属性,因此我建议您尽可能这样做。数据绑定基本上已经为您做了完全相同的事情。
我有一个带有 data
属性 的子自定义元素。
我的目标是在父元素的上下文中为此 属性(使用 javascript 而不是 {{}} 数据绑定语法)分配一个事件侦听器。
我搜索这样的东西:
ready(){
this.addEventListener(this.$.childElememt.data, _onChildDataChange);
},
_onChildDataChange() {
//called when data property of child elememt changes
}
在 Polymer 中,设置了 notify: true
的属性将导致元素触发其父元素可以监听的非冒泡 <property>-changed
事件。
我怀疑您可以通过执行以下操作手动收听此事件(前提是子 属性 设置为通知):
ready() {
this.$.childElement.addEventListener('data-changed', this._onChildDataChange.bind(this));
},
_onChildDataChange() {
//called when data property of child element changes
}
但是,这实际上等同于仅在子对象上使用双向数据绑定语法,在父对象上使用观察者 属性,因此我建议您尽可能这样做。数据绑定基本上已经为您做了完全相同的事情。