使用Polymer的单击函数发送对象

pik*_*ezi 4 html javascript polymer

我正在尝试将对象作为点击函数的参数发送,我已经看到一些帖子使用data-xxx发送值并使用target.attributes字段检索它们但这仅适用于字符串而不是对象.

这是一个显示问题的jsbin:http://jsbin.com/tujekilafowa/1/edit?html,console,output

有一个解决方案,即使它很糟糕,通过使用JSON.stringify发送数据并使用JSON.parse检索它们:http://jsbin.com/lavocacadoti/1/edit?html,console,output

有没有更好的办法?

在一个完美的世界中,我希望它通过将参数直接传递给HTML调用中的函数来充当Angular ...

编辑

我开了一个问题,关于这个问题的聚合物项目.

小智 7

以上的Peters回答,这对我有用(如果它足以访问模型)......

聚合物元素模板:

<template>
    <template repeat="{{ address in addresses }}">
        <paper-button label="-" on-click="{{ callback }}">less</paper-button>
    </template>
</template>
Run Code Online (Sandbox Code Playgroud)

Polymer Callback看起来像这样:

Polymer({
    callback: function (event, detail, sender) {
        console.log(sender.templateInstance.model.address);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 从Polymer 1.0开始,它变成`event.model.address` (2认同)