【问题标题】:polymer custom events fired by child element not caught by parent element子元素触发的聚合物自定义事件未被父元素捕获
【发布时间】:2017-02-05 13:58:44
【问题描述】:

我正在尝试将自定义事件从子元素触发到其父元素,但它无法使用侦听器对象工作。它使用带注释的事件工作,但在大多数情况下不适用。在这种情况下我如何使用侦听器对象。这里有一些代码来说明问题:

   <!--in child element's dom..-->

<dom-module id="searchresult-controller">
    <template>
        <style>
            ...
        </style>
    </template>
     <script type="text/javascript">
        Polymer({
            is: "searchresult-controller",

               ready: function(){
                  this.sendSignal();
            },

            sendSignal: function() {
                 this.fire('msg', {data: 'i love polymer'});
             }
        });
    </script>
</dom-module>

<!-- in parent -->
 <dom-module id="search-controllers">
<template>
    <style>
       ...
    </style>
     <searchresult-controller></searchresult-controller>
     <result-view></result-view>
</template>

<script type="text/javascript">
    Polymer({
        is: "search-controllers",

        listeners: {
            'msg': '_showAlert'
        },
         _showAlert: function(e) {
            console.log(e.detail.data);
        }

    });
</script>

提前感谢您的帮助。

【问题讨论】:

    标签: polymer custom-events


    【解决方案1】:

    您能否尝试在attached 而不是ready 上从searchresult-controller 触发事件?

    ready 处理 search-controllers 可能为时过早,因为 according to the docs 在 listeners 对象中设置的侦听器是在 attached 生命周期事件期间设置的。

    我的猜测是searchresult-controller 的ready 事件发生在search-controllers 的attached 事件之前。

    【讨论】:

    • 非常感谢对 d 文档的引用。仍然关于事件,我尝试从 main.js 触发一个铁信号事件,像这样, var event = new CustomEvent('iron-signal', {'detail' : {name: 'action', data: "foo"} }); document.dispatchEvent(事件);而另一个元素使用铁信号收听但没有结果。我该怎么做,有没有关于聚合物的好书可以推荐,因为我需要建立一个坚实的基础,了解使用聚合物构建应用程序的基础知识。
    • 您是如何设置&lt;iron-signals&gt; 的,更具体地说,您是如何尝试收听action 事件的?我不了解书籍,但我发现阅读Polymer components source code on GitHub 可以教会你很多东西。
    猜你喜欢
    • 2016-12-17
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多