Javascript 聚合物绑定到对象的方法

Javascript 聚合物绑定到对象的方法,javascript,templates,events,bind,polymer,Javascript,Templates,Events,Bind,Polymer,我正在尝试将一个方法绑定到纸按钮的点击属性。经过多次测试,我发现我只能绑定一个(因为没有更好的词)顶级函数,而不能绑定模板中对象的方法 例如,我有一个模板,我已经绑定了许多对象,其中一个是用户对象。对象用户有很多方法和变量,比如“isNew”或“声誉”。用户对象还有一个方法“addReputation” 我可以像这样使用对象变量: <template if = '{{user.new}}'><h1>{{user.name}}</h1></t

我正在尝试将一个方法绑定到纸按钮的点击属性。经过多次测试,我发现我只能绑定一个(因为没有更好的词)顶级函数,而不能绑定模板中对象的方法

例如,我有一个模板,我已经绑定了许多对象,其中一个是用户对象。对象用户有很多方法和变量,比如“isNew”或“声誉”。用户对象还有一个方法“addReputation”

我可以像这样使用对象变量:

       <template if = '{{user.new}}'><h1>{{user.name}}</h1></template>
{{user.name}
我可以像这样绑定按钮点击:

      <paper-button on-tap='{{addReputation}}'>Add Rep</paper-button>
      <paper-button on-tap='{{user.addReputation}}'>Add Rep</paper-button>
addrep
但不是这样:

      <paper-button on-tap='{{addReputation}}'>Add Rep</paper-button>
      <paper-button on-tap='{{user.addReputation}}'>Add Rep</paper-button>
addrep

有人知道为什么会这样吗?

如果将该方法设置为元素原型上的处理程序,它就会工作。这样,您仍然可以保持动态:


:主持人{
显示:块;
}
点击我
聚合物({
已创建:函数(){
此用户={
方法:函数(){
警报(“hi”);
}
};
this.tapHandler=this.user.method;
}
});

我正在分享我的plunk以解决上述问题

在模板中

<button on-tap="{{fncall}}" data-fnname="b">b call</button>

谢谢你的回答,它帮助了我,解决了我的问题——但是你(或任何人)能帮助我理解为什么会这样吗?我之所以这样说是因为我有一个我创建的“rightClickMenu”元素,要运行它,我有一个方法“show”,它接受一系列函数。我希望将这些函数直接绑定到tap事件,但是我必须编写一个处理程序,并使用target.templateInstance.model来获取我想要调用的操作。