Open hello-soon opened 3 days ago
JsonOb 属性变更,为什么要先抛事件再赋值?
set: function (newVal) { if (oldVal !== newVal) { if (OP.toString.call(newVal) === '[object Object]') { self.observe(newVal, pathArray); } self._callback(newVal, oldVal, pathArray); // 先post onValueChanged oldVal = newVal; // 再赋值 } }
问题场景: VMState和VMLabel同时watch同个path。 VMState在onValueChanged中, 设置 active=true, 触发VMLabel.onEnable VMLabel.onEnable触发VMLabel.onValueInit VMLabel.onValueInit中通过 this.VM.getValue(this.watchPath)获取的数据还是旧的 导致这次变的数据没有更新到ui上
VMState
VMLabel
onValueChanged
VMLabel.onEnable
VMLabel.onValueInit
this.VM.getValue(this.watchPath)
JsonOb 属性变更,为什么要先抛事件再赋值?
问题场景:
VMState
和VMLabel
同时watch同个path。VMState
在onValueChanged
中, 设置 active=true, 触发VMLabel.onEnable
VMLabel.onEnable
触发VMLabel.onValueInit
VMLabel.onValueInit
中通过this.VM.getValue(this.watchPath)
获取的数据还是旧的 导致这次变的数据没有更新到ui上