这看起来很简单,但不知怎的,我不知道怎么做。 我想通过“core-collapse-open”事件将数据发送到Polymer组件,但这不起作用:
<core-collapse on-core-collapse-open="{{loadDetails(data)}}">
{{data.Title}}
...
当我使用上面的代码时,聚合物中的loadDetails
函数没有击中。
Polymer('custom-item', {
data: {},
ready: function () {
},
loadDetails: function (e, details, sender) {
debugger;
}
});
如果我没有在声明性语法中使用函数语法(如下所示),则loadDetails函数会命中。
<core-collapse on-core-collapse-open="{{loadDetails}}">
{{data.Title}}
...
如何在事件中发送参数。
答案 0 :(得分:0)
on-core-collapse-open="{{loadDetails(data)}}"
这意味着:执行loadDetails(data)
,无论其返回值是什么,都将被绑定为事件处理程序。不是你想要的。
此外,事件处理函数已经接收参数:事件对象。您无法传递其他参数。如果您要传递的data
引用了this.data
属性:loadDetails
功能已经可以this.data
的形式访问它,那么您就不会这样做需要传递它。
如果您尝试对两个不同的事件使用相同的处理函数,并为每个单独的事件传递其他参数:传统上您使用匿名函数包装器执行此操作,并且这只是不可能使用声明性语法。
答案 1 :(得分:0)
您可以将data
绑定到core-collapse
的属性,然后使用事件处理程序的target
参数或{{1}的target
属性访问数据}}}或者,如果event
是元素的模型,则只需访问data
(请参阅https://stackoverflow.com/a/24530099/217408处的完整示例)
答案 2 :(得分:0)
我从另一篇文章中得到了答案。即使我发布了不同的背景,我知道我可以使用相同的。感谢Gunter对该主题的回复。