我正在搬运 从JS到Dart的polymer-ui-card。
不同之处在于,在我们的项目中(按惯例),我们有一个包含整个应用程序的附加聚合物元素(app-element)。
在JavaScript中看起来像
<body unresolved>
<div id="cards">
<polymer-ui-card swipeable>Swipe Me!</polymer-ui-card>
<polymer-ui-card swipeable>Swipe Me!</polymer-ui-card>
<polymer-ui-card></polymer-ui-card>
<polymer-ui-card swipeable>Swipe Me!</polymer-ui-card>
<polymer-ui-card></polymer-ui-card>
</div>
..
</body>
我们的Dart端口看起来像
<body unresolved>
<app-element></app-element>
</body>
app-element 包含正文标记在JS中的内容
<polymer-element name='app-element'>
<template>
<div id="cards">
<polymer-ui-card swipeable>Swipe Me!</polymer-ui-card>
<polymer-ui-card swipeable>Swipe Me!</polymer-ui-card>
<polymer-ui-card></polymer-ui-card>
<polymer-ui-card swipeable>Swipe Me!</polymer-ui-card>
<polymer-ui-card></polymer-ui-card>
</div>
</template>
..
<polymer-element>
polymer-ui-card (在JS和Dart中相同)
<polymer-element name="polymer-ui-card" attributes="swipeable noCurve"
on-trackstart="{{trackStart}}" on-track="{{track}}" on-trackend="{{trackEnd}}" on-flick="{{flick}}">
这里的问题是所有指针事件的目标是<app-element>
而不是<polymer-ui-card>
元素。
这是设计,还是这个问题可能只是Dart,或者我做错了什么?
答案 0 :(得分:1)
由于event retargeting,在没有上下文的情况下,再也无法讨论事件的target
。
注册事件侦听器的位置决定了事件对象上标识的DOM节点的范围。
如果您将事件监听器放在<app-element>
上,它将永远是目标,因为它在文档范围内没有子级。