Javascript 在Polymer 1.0中使用带纸张按钮的事件中无法访问数据属性
我之所以发布此消息,是因为发布的答案对我无效。我想从纸按钮(在dom重复中)将额外的数据参数传递给点击事件处理程序。使用以下代码段的结果提供了一个没有数据的子图纸材质元素 使用: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>
<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}}(作为一个对象)的整个数据结构(这确实是我想要做的)