【发布时间】:2015-09-22 00:09:05
【问题描述】:
我有两个观察者,在每个观察者中我更改另一个观察者的属性值。在这种情况下,我不希望其他观察者执行。 如何更改观察者仅在从外部更改属性时执行?
谢谢
【问题讨论】:
标签: polymer polymer-1.0
我有两个观察者,在每个观察者中我更改另一个观察者的属性值。在这种情况下,我不希望其他观察者执行。 如何更改观察者仅在从外部更改属性时执行?
谢谢
【问题讨论】:
标签: polymer polymer-1.0
您最好的选择是使用局部变量来停止更新。
Polymer({
is: 'my-element',
properties: {
myProperty: {
type: String,
observer: '_myObserverA'
}
},
observers: [
'_myObserverB(myProperty)'
],
_myObserverA(newValue) {
if(!this._localUpdate) {
//do stuff here
} else {
this._localUpdate = false;
}
},
_myObserverB(newValue) {
this._localUpdate = true;
//do stuff here
}
})
【讨论】:
你必须使用这样的观察者:
Polymer({
is: 'x-custom',
properties: {
preload: Boolean,
src: String,
size: String
},
observers: [
'updateImage(preload, src, size)'
],
updateImage: function(preload, src, size) {
// ... do work using dependent values
}
});
更多信息在:https://www.polymer-project.org/1.0/docs/devguide/properties.html#multi-property-observers
【讨论】: