我正在使用sync函数在Stateful
对象和自定义窗口小部件之间建立双向绑定。
当我在窗口小部件中使用自定义设置程序时,它们会两次更改一次:第一个-因为我在窗口小部件内部调用this.set('property','value')
,第二个-当更新来自同步对象时。
在日志中,它看起来像:
dojo.Stateful:columnsSettingsPreset is being copied from: Component:activePreset (Value: [object Object] from undefined)
sync.js:126 Component:columnsSettingsPreset is being copied from: dojo.Stateful:columnsSettingsPreset (Value: [object Object] from undefined)
sync.js:126 Component:activePreset is being copied from: dojo.Stateful:columnsSettingsPreset (Value: [object Object] from undefined)
自定义设置器如下:
_setActivePresetAttr(preset) {
console.log('I am setting active preset:', preset)
this._set('activePreset', preset) //If not to call this, watchers won't be notified
}
如果我在小部件中的某个地方调用this.set('activePreset', preset)
,日志将被打印两次。
有什么办法可以防止这种行为?