如何在 Polymer 中设置和取消设置观察者?
How do I set and unset an observer in Polymer?
我试图了解在 attached()
和 detached()
事件中的 Polymer 组件中设置和取消设置观察者的正确方法,因此它仅在附加元素后才开始观察.有任何想法吗?
目前,没有 public API 强制添加观察者(但存在私有观察者),也没有 API 移除观察者。
私有函数 _addComplexObserverEffect(...)
在一个或多个属性上创建观察者。正是这个函数处理了 Polymer 对象的 observers
数组中的每个观察者表达式。请注意,使用私有函数的注意事项是它可能在下一个版本中无法使用。
你可以这样使用它:
Polymer({
...,
properties: {
foo: String
},
attached: function() {
this._addComplexObserverEffect('_fooChanged(foo)');
},
_fooChanged: function(foo) { ... }
});
如果您不想使用私有方法并且这只是时间问题而不需要 n 个动态观察者,只需在元素上设置一个 prop已附加,将该道具添加到观察者并且仅在附加时执行。
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);
}
});
我试图了解在 attached()
和 detached()
事件中的 Polymer 组件中设置和取消设置观察者的正确方法,因此它仅在附加元素后才开始观察.有任何想法吗?
目前,没有 public API 强制添加观察者(但存在私有观察者),也没有 API 移除观察者。
私有函数 _addComplexObserverEffect(...)
在一个或多个属性上创建观察者。正是这个函数处理了 Polymer 对象的 observers
数组中的每个观察者表达式。请注意,使用私有函数的注意事项是它可能在下一个版本中无法使用。
你可以这样使用它:
Polymer({
...,
properties: {
foo: String
},
attached: function() {
this._addComplexObserverEffect('_fooChanged(foo)');
},
_fooChanged: function(foo) { ... }
});
如果您不想使用私有方法并且这只是时间问题而不需要 n 个动态观察者,只需在元素上设置一个 prop已附加,将该道具添加到观察者并且仅在附加时执行。
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);
}
});