带参数的聚合函数调用

时间:2015-01-23 07:17:23

标签: polymer

这看起来很简单,但不知怎的,我不知道怎么做。 我想通过“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}}
...

如何在事件中发送参数。

3 个答案:

答案 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对该主题的回复。

Polymer event parameters on repeat