【发布时间】:2015-01-02 22:38:30
【问题描述】:
我在开发 Polymer 应用程序时遇到了一些范围问题。本质上,我试图将自定义元素用作包含相关逻辑的类。
假设我有一个侦听器正在侦听 custom-elem 元素上的单击事件,并且我想访问另一个元素中的函数,在本例中是元素父级,父级:
<polymer-element name="custom-elem">
<template>
</template>
<script>
Polymer({
attached: function(){
this.addEventListener('mousedown', function(e) {
if (e.which === 1){
this.parentNode.parentNode.testFunc(e);
//or this.parentNode.querySelector.... etc
}
else if (e.which === 3){
}
}.bind(this));
}
</script>
</polymer-element>
我发现我必须遍历 DOM 才能找到我正在寻找的元素,或者在新创建的元素中创建引用。我意识到我可以在包含上述逻辑的外部脚本中创建一个对象,但这似乎使定义自定义元素/Web 组件的目的无效。
是否可以在不导航 DOM 和创建外部脚本的情况下轻松访问 Polymer 注册元素的成员?
【问题讨论】:
-
我正在考虑将元素创建引用添加到对象作为解决此问题的唯一方法。喜欢here
标签: javascript dom prototype polymer web-component