在Polymer中访问数据的可靠方式(dom-repeat / event handler内部)

时间:2016-02-19 13:30:31

标签: events polymer shadow-dom

我需要从Polymer中的<template is="dom-repeat">生成的实例中捕获数据(v1.2.4),我不确定考虑到无数可用的Shadow DOM,最安全的方法是什么(客户端浏览器可能是polyfilled等。)

一个简单的例子:

<template is="dom-repeat" items="[[myItems]]" id="collection"> <paper-card on-tap="handleTap"> (...)

从事件处理程序访问模型数据的最可靠方法是什么?

1。

handleTap: function(e) { var data = e.model.get('item.myData'); }

2

handleTap: function(e) { var data = this.$.collection .modelForElement(Polymer.dom(e).localTarget) .get('item.myData'); }

我担心的是,最简单的(#1)选项可能在我的环境中按预期工作,但在其他浏览器中可能会出错。

即使在选项#2中,我也不相信在将事件目标传递给modelForElement之前是否真的有必要对事件目标进行规范化(如official Polymer guide on events中所建议的那样)。

1 个答案:

答案 0 :(得分:0)

两者都应该有效;但是,似乎你应该在尝试检查子模型时触发自定义事件。什么组件有&#34; item.myData&#34;应该使用&#34; item.myData&#34;点击自定义事件。作为活动的一部分。然后,您应该为该自定义事件设置一个侦听器。

有关详细信息,请参阅custom events