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 a82442a72..4ed6c9661 100644 --- a/examples/useContext.html +++ b/examples/useContext.html @@ -5,11 +5,13 @@ - + + @@ -98,6 +100,18 @@ ref: function (_ref) { child = _ref; } + }, { + type: "bi.dynamic_date_combo", + supportDynamic: false, + width: 200, + value: { + type: 1, + value: { + year: 2012, + month: 3, + day: 15 + } + } }] }; }; 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) {