当我正在寻找让Polymer 1.0更新计算绑定的方法时,我注意到当我将计算函数声明为属性时,将属性值设置为新函数会更新。我可以依赖这种行为还是巧合?
<dom-module id="flip-fn">
<template>
<p on-tap="flip">{{fn()}}</p>
</template>
<script>
(function(){
function fn1(){return 'val1';}
function fn2(){return 'val2';}
Polymer({
is: 'flip-fn',
properties:{
fn: {type: Object, value:function(){return fn1;}}
},
flip:function(){
this.fn = fn2;
}
});
})();
</script>
</dom-module>
值得注意的是,当我在dom中使用计算出的绑定时 - 如果它不起作用:
...
<p on-tap="flip">{{fn()}}</p> <!-- this works -->
<template is="dom-if" if="true">
<p>{{fn()}}</p> <!-- does not show any text -->
</template>
答案 0 :(得分:0)
我认为你可以依靠它。
示例https://www.polymer-project.org/1.0/docs/devguide/templates.html#dynamic-sort-and-filter-changes使用也使用此功能的动态过滤器。
函数引用也只是一个对象。当聚合物检查身份时,如果它引用不同的功能并且必须将其视为变化,则它将变为错误。