Javascript 在Polymer 1.0中使用带纸张按钮的事件中无法访问数据属性

Javascript 在Polymer 1.0中使用带纸张按钮的事件中无法访问数据属性,javascript,polymer,parameter-passing,polymer-1.0,Javascript,Polymer,Parameter Passing,Polymer 1.0,我之所以发布此消息,是因为发布的答案对我无效。我想从纸按钮(在dom重复中)将额外的数据参数传递给点击事件处理程序。使用以下代码段的结果提供了一个没有数据的子图纸材质元素 使用: <template is="dom-repeat" items="{{someParam}}> <paper-button on-tap="_handleTap" data-args="{{item}}">...</paper-button> </template>

我之所以发布此消息,是因为发布的答案对我无效。我想从纸按钮(在dom重复中)将额外的数据参数传递给点击事件处理程序。使用以下代码段的结果提供了一个没有数据的子图纸材质元素

使用:

<template is="dom-repeat" items="{{someParam}}>
  <paper-button on-tap="_handleTap" data-args="{{item}}">...</paper-button>
</template>

两者都返回


发生了什么事?为什么目标不返回点击的纸张按钮或其中的数据

经过一些黑客攻击后,发现目标上的dataHost属性指向原始元素。不确定为什么没有记录。这可能不可靠,但对我来说很有效

event.target.dataHost.args
更新: 上述毕竟不起作用

啊。仍在窃听

更新: 事实证明,您必须对数据属性使用驼峰大小写

event.target.dataHost.dataArgs

超级复杂和隐藏:-/

经过一些黑客攻击后,发现目标上的dataHost属性指向原始元素。不确定为什么没有记录。这可能不可靠,但对我来说很有效

event.target.dataHost.args
更新: 上述毕竟不起作用

啊。仍在窃听

更新: 事实证明,您必须对数据属性使用驼峰大小写

event.target.dataHost.dataArgs

超级复杂和隐藏:-/

从模板实例访问数据的最有效方法是执行以下操作:

<template is="dom-repeat" items="[[someParam]]">
  <paper-button on-tap="_handleTap">...</paper-button>
</template>

...

_handleTap: function(e) {
  var model = e.model.item;
  // Do something
}

...
...
_handleTap:功能(e){
var模型=e.model.item;
//做点什么
}

从模板实例访问数据的最有效方法是执行以下操作:

<template is="dom-repeat" items="[[someParam]]">
  <paper-button on-tap="_handleTap">...</paper-button>
</template>

...

_handleTap: function(e) {
  var model = e.model.item;
  // Do something
}

...
...
_handleTap:功能(e){
var模型=e.model.item;
//做点什么
}

要绑定到像data-*这样的本机属性,必须使用属性绑定(
$=
)。对于事件重定目标,您必须使用
Polymer.dom(event.localTarget
才能到达发出该事件的正确目标,在这种情况下,您的纸张按钮(
rootTarget
也将返回纸张材料)


这是我做的一个有效的例子

要绑定到像data-*这样的本机属性,必须使用属性绑定(
$=
)。对于事件重定目标,您必须使用
Polymer.dom(event.localTarget
才能到达发出该事件的正确目标,在这种情况下,您的纸张按钮(
rootTarget
也将返回纸张材料)


这是我做的一个有效的例子

通常指委托事件上的提升元素,可能不那么做作……Dan,不确定在处理函数中使用“this”是什么意思。此引用指向聚合元素,在本例中,聚合元素是父元素/容器。我将更新问题,以便在有助于发现解决方案的情况下更加清楚。
通常指委托事件的提升元素,可能不那么做作……Dan,不确定使用“此”是什么意思在handler函数中,此引用指向聚合物元素,在本例中,聚合物元素是父元素/容器。我将更新问题,以便在有助于发现解决方案的情况下更加清楚。
data attr
也可以使用
elem.dataset.attr
访问。attr像一个符咒一样工作。
data attr
也可以使用
elem.dataset.attr
像一个符咒一样工作。太棒了!谢谢你,瑞奇!这是一个更好的方法。其他人注意:正如Ricky解释的那样,通过使用“.model”,我能够从dom repeat中获得{{item}}(作为一个对象)的整个数据结构(这确实是我想要做的。)太棒了!谢谢你,瑞奇!这是一个更好的方法。其他人注意:正如Ricky解释的那样,通过使用“.model”,我能够从dom repeat中获得{{item}}(作为一个对象)的整个数据结构(这确实是我想要做的)