Polymer 如何设置和取消设置聚合物中的观察者?

Polymer 如何设置和取消设置聚合物中的观察者?,polymer,polymer-1.0,observers,Polymer,Polymer 1.0,Observers,我试图理解在attached()和detached()事件中设置和取消设置聚合物组件中的观察者的正确方法,因此它只在元素连接后才开始观察。有什么想法吗 目前,没有公共API来强制添加观察者(但存在私有API),也没有API来删除它们 私有函数,\u addComplexObserverEffect(…)在一个或多个属性上创建观察者。该函数处理聚合物对象的观察者数组中的每个观察者表达式。注意使用私有函数的警告是,它可能在下一版本中不可用 您可以这样使用它: Polymer({ ...,

我试图理解在
attached()
detached()
事件中设置和取消设置聚合物组件中的观察者的正确方法,因此它只在元素连接后才开始观察。有什么想法吗

目前,没有公共API来强制添加观察者(但存在私有API),也没有API来删除它们

私有函数,
\u addComplexObserverEffect(…)
在一个或多个属性上创建观察者。该函数处理聚合物对象的
观察者
数组中的每个观察者表达式。注意使用私有函数的警告是,它可能在下一版本中不可用

您可以这样使用它:

Polymer({
  ...,

  properties: {
    foo: String
  },

  attached: function() {
    this._addComplexObserverEffect('_fooChanged(foo)');
  },

  _fooChanged: function(foo) { ... }
});

目前,没有公共API来强制添加观察者(但存在一个私有API),也没有API来删除它们

私有函数,
\u addComplexObserverEffect(…)
在一个或多个属性上创建观察者。该函数处理聚合物对象的
观察者
数组中的每个观察者表达式。注意使用私有函数的警告是,它可能在下一版本中不可用

您可以这样使用它:

Polymer({
  ...,

  properties: {
    foo: String
  },

  attached: function() {
    this._addComplexObserverEffect('_fooChanged(foo)');
  },

  _fooChanged: function(foo) { ... }
});

如果您不想使用私有方法,而这只是时间问题,不需要有n个动态观察者,只需在元素附着后设置一个道具,将该道具添加到观察者,并仅在附着时执行

  Polymer({
    is: 'my-el',
    properties: {
      bar: String,
      attached: {
        type: Boolean,
        value: false
      }
    },
    observers: [
      '_barChagned(bar, attached)'
    ],
    _barChagned: function(bar, att) {
      if(!att) return;
        // Do your stuff
    },
    attached: function() {
      this.set('attached', true);
    }
  });

如果您不想使用私有方法,这只是时间问题,不需要有n个动态观察者,只需在元素附着后设置一个道具,将该道具添加到观察者,并仅在附着时执行

  Polymer({
    is: 'my-el',
    properties: {
      bar: String,
      attached: {
        type: Boolean,
        value: false
      }
    },
    observers: [
      '_barChagned(bar, attached)'
    ],
    _barChagned: function(bar, att) {
      if(!att) return;
        // Do your stuff
    },
    attached: function() {
      this.set('attached', true);
    }
  });

将来有没有计划可以做到这一点?一个公共的设置和取消设置的方法?将来有没有计划可以这样做?一个公共的set和unset方法?