我正在使用聚合物2.0,并且我有一个dom-repeat
用于不同的待办卡。我要做的是单击时删除卡。
所以我尝试了使用dom-repeat
索引的on-tap=deleteNote([[index]])
。但是,聚合物不会执行该功能。
我在做什么错?
另一个解决方案可以是event.target
中的dataset
对象。您可以使用data-
前缀来定义您的属性:
<div on-tap="doSomething" data-item$="[[item]]"></div>
且在您的doSomething()
侦听器中您可以获取dataset
对象:
doSomething(event) {
const item = event.target.dataset.item;
...
}
您可以通过事件参数的model
属性访问模型。
因此,您可以从event.model.index
访问索引。
好吧,我知道你不能。关于互联网上的讨论很多。
当然,有一种方法可以通过参数来运作。您可以将[[index]]
保存在元素的属性中,然后在需要时获取属性。
示例:
<div on-tap='_deleteNote' indexed$='[[index]]'>
然后在脚本中:
_deleteNote(e) {
var index = e.target.getAttribute('indexed');
...
}
获得index
后,您可以对此做任何想做的事情。
如果您不使用聚合物2.0中的混合元素,请不要忘记扩展聚合物手势。
class Foo extends Polymer.GestureEventListeners(Polymer.Element) {}
更多地:https://www.polymer-project.org/2.0/docs/devguide/gesture-events#using-gesture-events
什么是混合元素:https://www.polymer-project.org/2.0/docs/devguide/hybrid-emlement
on-tap
似乎未在聚合物2.0中实现。如果您使用on-click
,则可以工作。
编辑:请参见下文评论。