使用Polymer时,是否可以绑定方法而不是值? E.g。
<div>{{someMethod()}}</div>
或
<div>{{someMethod}}</div>
从来源和文档来看,事实并非如此。只是想确认一下。
答案 0 :(得分:3)
不是直接的,但有几种方法可能达到你想要的效果。我假设您想要转换数据......?
将属性定义为 ES5 getter
有点作弊,但您可以将属性定义为getter,然后围绕返回的值包装自定义逻辑。
<div>{{likes}}</div>
Polymer('my-tag', {
firstName: 'John',
get likes() {
return this.firstName + ' ' + lastName + ' likes bread';
}
});
演示:http://jsbin.com/nuyuqote/3/edit
注意:谨慎使用此选购件。绑定到getter在Object.observe()
下不起作用,如果支持,Polymer将使用它。请参阅下面的Scott's comment。
自定义过滤器
尚未记录:(
<div>{{'thingy' | upperCaseFilter}}</div>
Polymer('my-tag', {
upperCaseFilter: function(value) {
return value.toUpperCase();
}
});
<强> <prop>Changed
强>
请参阅下面的Scott's comment。
{{someMethod()}}
这样的东西的一个原因是执行JavaScript。这通常被认为是做onclick="someMethod()"
之类的反模式,因为很容易使自己受到XSS攻击之类的攻击。</ p>