我需要从Polymer中的<template is="dom-repeat">
生成的实例中捕获数据(v1.2.4),我不确定考虑到无数可用的Shadow DOM,最安全的方法是什么(客户端浏览器可能是polyfilled等。)
一个简单的例子:
<template is="dom-repeat" items="[[myItems]]" id="collection">
<paper-card on-tap="handleTap">
(...)
handleTap: function(e) {
var data = e.model.get('item.myData');
}
handleTap: function(e) {
var data = this.$.collection
.modelForElement(Polymer.dom(e).localTarget)
.get('item.myData');
}
我担心的是,最简单的(#1)选项可能在我的环境中按预期工作,但在其他浏览器中可能会出错。
即使在选项#2中,我也不相信在将事件目标传递给modelForElement
之前是否真的有必要对事件目标进行规范化(如official Polymer guide on events中所建议的那样)。
答案 0 :(得分:0)
两者都应该有效;但是,似乎你应该在尝试检查子模型时触发自定义事件。什么组件有&#34; item.myData&#34;应该使用&#34; item.myData&#34;点击自定义事件。作为活动的一部分。然后,您应该为该自定义事件设置一个侦听器。
有关详细信息,请参阅custom events。