当函数改变时计算出绑定更新,它是一个特征吗?

时间:2016-04-19 12:40:49

标签: polymer-1.0

当我正在寻找让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>

1 个答案:

答案 0 :(得分:0)

我认为你可以依靠它。

示例https://www.polymer-project.org/1.0/docs/devguide/templates.html#dynamic-sort-and-filter-changes使用也使用此功能的动态过滤器。

函数引用也只是一个对象。当聚合物检查身份时,如果它引用不同的功能并且必须将其视为变化,则它将变为错误。