Polymer:侦听来自轻DOM的子元素触发的事件

时间:2016-01-28 02:56:33

标签: polymer polymer-1.0

我有container-element行为_checkSomething需要在其轻型DOM中点击以查找任何子 item-element

<container-element>
    <template is="dom-repeat" items="[[ items ]]">

        <!-- Doesn't work; scope cannot access _checkSomething within shadow DOM: -->  
        <item-element on-down="_checkSomething"></item-element>

    </template>
</container-element>

<dom-module id="container-element">
    <template>

        <content select="item-element"></content>

    </template>
    <script>
        Polymer({
            is: "container-element",
            listeners: {

                // This listener is also impossible, since it's
                // meant for a unique id, whereas I want to target
                // every child item-element:

                'item-element.down': '_checkSomething'
            },

            _checkSomething: function(){
                console.log('checking...');
            }
        });
    </script>
</dom-module>

通常要做到这一点,我不会从轻DOM中插入dom-repeat item-elements;我会将它们放在container-element的模板中,我可以为每个项目设置<item-element on-down="_checkSomething">。在这种情况下,我认为我没有奢侈品。 container-element实际上是一个拖放容器的简化界面,其中包含一堆需要在点击时检查的自定义逻辑,我想从实现它的人身上隐藏它。

在我看来,我唯一的前进方向是让item-element发出特殊事件,由container-element收听。但是我不确定container-element是否能够听到来自其轻量级DOM的事件,我们会遇到同样的问题..?

有关如何使用此模板设置触发_checkSomething的任何想法?

0 个答案:

没有答案