我有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
的任何想法?