谷歌聚合物监听火灾事件永远不会发生

时间:2014-11-06 03:48:12

标签: javascript polymer

将来自此处https://www.polymer-project.org/articles/communication.html#events

的不完整的示例放在一起

我试图让addEventListener处理不同的组件或dom元素。 如果我将侦听器放在提交组件上它将起作用,但是如果我将它放在dom元素上则没有任何反应。 将侦听器放在发送元素上似乎是多余的。

我查看了数据绑定,但我想传递更多数据,实际上只是想构建一个工作小的演示位库,我可以在需要不同方法时参考。

谢谢。

<body unresolved id="body">

 <polymer-element name="say-hello" attributes="name" on-click="{{sayHi}}">
   <template>Hello {{name}}!</template>

   <script>
     Polymer('say-hello', {
       sayHi: function() {
        console.log("sklngh");
         this.fire('said-hello', {name: this.name});
       }
     });
   </script>

 </polymer-element>


 <say-hello></say-hello>

 <div id="container">zzz</div>

 <script>
    var container = document.querySelector('#container');
    // var container = document.querySelector('say-hello');
    container.addEventListener('said-hello', function(e) {
      alert('outside: Said hi to ' + e.detail.name + ' from ' + e.target.localName);
    });
 </script>

</body>

修改

啊它泡泡!需要包装组件。

<div id="container">
    <say-hello></say-hello>
</div>

2 个答案:

答案 0 :(得分:0)

见上面的编辑。这似乎就是答案。咔嚓。

答案 1 :(得分:0)

要从host元素触发自定义事件,请使用fire方法。您还可以将数据作为参数传递给事件处理程序。

使用此链接: https://www.polymer-project.org/1.0/docs/devguide/events