Polymer,访问自定义元素/名称空间问题

时间:2015-01-02 22:38:30

标签: javascript dom prototype polymer web-component

开发Polymer应用程序时,我遇到了一些范围问题。本质上,我试图将自定义元素用作包含相关逻辑的类。

假设我有一个侦听器正在侦听custom-elem元素上的click事件,我想访问另一个元素中的函数,在这种情况下,元素parent,parent:

<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组件的目的无效。

无论如何都可以轻松访问Polymer注册元素的成员而无需导航DOM并且无需创建外部脚本?

1 个答案:

答案 0 :(得分:1)

我认为如果你重新考虑你的方法,那么你将会有更轻松的时间,以便更多地遵循Polymer的设计理念。这可能有所帮助 - https://stackoverflow.com/a/23963632