如何通过聚合物2.0打入TAP函数中的参数传递



我正在使用聚合物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,则可以工作。

编辑:请参见下文评论。

最新更新