diff --git a/dist/fix/fix.compact.js b/dist/fix/fix.compact.js index df02143b6..6179d484b 100644 --- a/dist/fix/fix.compact.js +++ b/dist/fix/fix.compact.js @@ -78,7 +78,7 @@ }, options); }; - function findStore (widget) { + BI.Widget.findStore = function findStore (widget) { if (target != null) { return target; } @@ -110,7 +110,7 @@ return true; } if (this._store) { - var store = findStore(this.options.context || this._parent || this.options.element || this._context); + var store = BI.Widget.findStore(this.options.context || this._parent || this.options.element || this._context); if (store) { pushTarget(store); needPop = true; diff --git a/examples/useContext.html b/examples/useContext.html index e7213e10d..b3cb40f7f 100644 --- a/examples/useContext.html +++ b/examples/useContext.html @@ -5,12 +5,13 @@ - - + + @@ -99,6 +100,22 @@ ref: function (_ref) { child = _ref; } + }, { + type: "bi.time_periods", + width: 400, + height: 24, + value: { + start: { + hour: 7, + minute: 3, + second: 16 + }, + end: { + hour: 21, + minute: 3, + second: 35 + } + } }] }; }; diff --git a/src/core/4.widget.js b/src/core/4.widget.js index 058015c32..9910f010f 100644 --- a/src/core/4.widget.js +++ b/src/core/4.widget.js @@ -902,8 +902,9 @@ }; BI.useContext = function (inject) { - if (BI.Model.target) { - var vm = BI.Model.target; + // 通过组件找最近的store + var vm = BI.Widget.findStore(BI.Widget.current); + if (vm) { if (inject) { if (vm.$$computed && inject in vm.$$computed) { return vm; @@ -923,7 +924,7 @@ return null; } } - return BI.Model.target; + return vm; }; BI.watch = function (vm, watch, handler) {