Polymer 聚合:侦听在灯光DOM的子元素上触发的事件
我有一个Polymer 聚合:侦听在灯光DOM的子元素上触发的事件,polymer,polymer-1.0,Polymer,Polymer 1.0,我有一个容器元素,它的行为是\u checkSomething,在轻触任何子项元素时,它都需要发生 <container-element> <template is="dom-repeat" items="[[ items ]]"> <!-- Doesn't work; scope cannot access _checkSomething within shadow DOM: --> <item-eleme
容器元素
,它的行为是\u checkSomething
,在轻触任何子项元素
时,它都需要发生
<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>
聚合物({
是:“容器元素”,
听众:{
//这个监听器也是不可能的,因为它是
//这意味着一个唯一的id,而我想目标
//每个子项元素:
'item element.down':'\u checkSomething'
},
_checkSomething:function(){
log('checking…');
}
});
通常要完成这一点,我不会从light dom中插入dom repeat
项元素
;我会把它们放在容器元素
的模板中,在那里我可以为每个项目设置
。在这种情况下,我认为我没有奢侈<代码>容器元素实际上是拖放容器的简化界面,其中包含一组自定义逻辑,需要在点击时进行检查,我想对实现它的人隐藏这些逻辑
在我看来,我唯一的前进方向是让item元素
发出一个特殊事件,由container元素
监听。但是,我不确定容器元素是否能够听到来自其轻型DOM的事件,我们是否会遇到同样的问题
关于如何使用此模板设置触发\u检查某些东西,您有什么想法吗?我认为您的工作很复杂,因为使用
,而在它内部使用
。首先,尝试在不使用
标记的情况下处理事件,并在container-element的dom中添加包含项的模板。是的,Dmitry-这是我通常会做的事情,事实上,我现在不得不切换到这种方式。我提出这个问题的原因是:因为真实的元素比这个简化的示例要复杂得多,所以我想使用
作为一个容器来隐藏拖放“魔力”,它会在内容的light DOM中响应事件而发生。这将允许用户开发人员忘记复杂的dnd逻辑。唉,现在我认为这是不可能的。。。