Polymer 移除/停用聚合物

Polymer 移除/停用聚合物,polymer,messaging,observer-pattern,Polymer,Messaging,Observer Pattern,所以我决定尝试使用而不是交流 在我的引导逻辑中,我正在监听一些要用观察块更新的模型: observe: { '$.myModel.value': function(){ initLogic(); delete this.observe['$.myModel.value']; } }, 然后我想停止听,因为这只需要做一次 它是否像删除observe.函数(如上所示)那样简单,或者我是否需要更明确地使用Polymer 或者,我可以使用承诺,在这种情况下,我不在乎

所以我决定尝试使用而不是交流

在我的引导逻辑中,我正在监听一些要用观察块更新的模型:

observe: {
  '$.myModel.value': function(){
      initLogic();
      delete this.observe['$.myModel.value']; 
   }
},
然后我想停止听,因为这只需要做一次

它是否像删除
observe.
函数(如上所示)那样简单,或者我是否需要更明确地使用Polymer

或者,我可以使用承诺,在这种情况下,我不在乎观察者是否继续触发:

var initDeferred = Promise.defer();
Polymer('init-logic', {
    observe: {
        '$.myModel.value': initDeferred.resolve
    },
    ready: function(){
        initDeferred.promise.then(initLogic);
    }
});
但是,有不必要的观察者存在会影响性能吗?

查看此链接
我不确定这对您的情况是否有帮助。

谢谢您指出这一点,我没有注意到,但我不确定如何使用绑定来代替观察者/事件侦听器。我也在考虑以的样式使用
observeOnce
功能扩展聚合元素,但这将对属性而不是DOM子树起作用。据我所知,myModel需要设置一次,对吗?因此,您可以在元素的属性中传递此myModel的值,但在代码中使用myModel的一次性绑定语法。虽然我一次也没试过,但我会这样做。我明白你的意思,但它只适用于基本类型值,不适用于对象或函数。是的,它不适用于对象或函数。但是您可以使用以下
Polymer('init-logic',{observe:{'myModel.someVar':'updateStuff'},updateStuff:function(){//stuf-u-to-do})这相当于OP,每次更改时,
updateStuff
功能都会持续触发。