Browse Source

DEC-8536 fix : 修复 _mount执行中断导致context指向错误问题.

master
dailer 5 years ago
parent
commit
fbfeaa5021
  1. 24
      dist/fix/fix.compact.js

24
dist/fix/fix.compact.js vendored

@ -1,5 +1,5 @@
;(function () {
function initWatch(vm, watch) {
function initWatch (vm, watch) {
vm._watchers || (vm._watchers = []);
for (var key in watch) {
var handler = watch[key];
@ -13,7 +13,7 @@
}
}
function createWatcher(vm, keyOrFn, handler) {
function createWatcher (vm, keyOrFn, handler) {
return Fix.watch(vm.model, keyOrFn, _.bind(handler, vm), {
store: vm.store
});
@ -22,24 +22,24 @@
var target = null;
var targetStack = [];
function pushTarget(_target) {
function pushTarget (_target) {
if (target) targetStack.push(target);
Fix.Model.target = target = _target;
}
function popTarget() {
function popTarget () {
Fix.Model.target = target = targetStack.pop();
}
var context = null;
var contextStack = [];
function pushContext(_context) {
function pushContext (_context) {
if (context) contextStack.push(context);
Fix.Model.context = context = _context;
}
function popContext() {
function popContext () {
Fix.Model.context = context = contextStack.pop();
}
@ -60,7 +60,7 @@
}, options);
};
function findStore(widget) {
function findStore (widget) {
if (target != null) {
return target;
}
@ -106,7 +106,7 @@
};
});
function createStore() {
function createStore () {
var needPop = false;
if (_global.Fix && this._store) {
var store = findStore(this.options.context || this.options.element);
@ -172,7 +172,11 @@
var old = BI.Widget.prototype[name];
old && (BI.Widget.prototype[name] = function () {
this.store && pushTarget(this.store);
var res = old.apply(this, arguments);
try {
var res = old.apply(this, arguments);
} catch (e) {
console.error(e);
}
this.store && popTarget();
return res;
});
@ -246,4 +250,4 @@
};
}
BI.watch = Fix.watch;
}());
}());

Loading…
Cancel
Save