Javascript 强制聚合物表达对过滤器更换的重新评估

Javascript 强制聚合物表达对过滤器更换的重新评估,javascript,polymer,web-component,Javascript,Polymer,Web Component,我试图添加一个过滤器,其返回值取决于组件的某个私有静态变量值。是否有一种方法可以在更改此变量时使用此筛选器重新计算表达式 例如: {{ someVariable | myFilter }} 其中myFilter取决于某个私有变量的值。现在它只计算一次。您可以将这两个属性传递给筛选器,即要显示的属性和要监视更改的属性,并且在自定义筛选器中,仅当第二个属性已更改时才显示第一个属性 <body> <template is="auto-binding"> <my

我试图添加一个过滤器,其返回值取决于组件的某个私有静态变量值。是否有一种方法可以在更改此变量时使用此筛选器重新计算表达式

例如:

{{ someVariable | myFilter }}

其中
myFilter
取决于某个私有变量的值。现在它只计算一次。

您可以将这两个属性传递给筛选器,即要显示的属性和要监视更改的属性,并且在自定义筛选器中,仅当第二个属性已更改时才显示第一个属性

<body>
  <template is="auto-binding">

  <my-component count={{count}} status={{status}}></my-component>

  <h1>And here I'm outside...</h1>

  <div>Changing only if status is on: {{ {count: count, status: status} | statusIsOn }}</div>



  </template>

  <script>
    var template = document.querySelector('template[is="auto-binding"]');
    template.count=0;
    template.status =0;
    template.statusIsOn = function(value) {
      if (value.status >0)
        return value.count;
      return 0;
    };
</script>

我在外面。。。
仅在状态为on时更改:{{{count:count,status:status}| statusIsOn}
var template=document.querySelector('template[is=“auto binding”]”);
模板计数=0;
template.status=0;
template.statusIsOn=函数(值){
如果(value.status>0)
返回值.count;
返回0;
};
此处显示此案例的plunker:


希望有帮助

我无法从组件外部访问此变量。如果它是一个私有变量,而您无法使其可见,则您有问题。。。你能修改组件,添加新的变量或函数吗?从我正在构建的组件的角度来看,这将是非常愚蠢的。私有变量是,私有。。。从组件外部访问私有变量将使它们公开。因此,如果你不能修改组件,我不知道你怎么做你想要的。你正在使用的过滤器是在组件内部声明的?你说它只计算一次,所以它至少工作一次。它如何访问组件私有变量?