Browse Source

无JIRA任务,invisible为true的时候不create子组件

master
Dailer 6 years ago
parent
commit
7fae9a9aa6
  1. 15
      dist/fix/fix.compact.js
  2. 33
      src/core/widget.js

15
dist/fix/fix.compact.js vendored

@ -106,12 +106,11 @@
}; };
}); });
var _init = BI.Widget.prototype._init; function createStore() {
BI.Widget.prototype._init = function () {
var self = this;
var needPop = false; var needPop = false;
if (window.Fix && this._store) { if (!this._storeCreated && window.Fix && this._store && this.isVisible()) {
var store = findStore(this.options.context || this.options.element); var store = findStore(this.options.context || this.options.element);
this._storeCreated = true;
if (store) { if (store) {
pushTarget(store); pushTarget(store);
needPop = true; needPop = true;
@ -128,6 +127,13 @@
} }
needPop = true; needPop = true;
} }
return needPop;
}
var _init = BI.Widget.prototype._init;
BI.Widget.prototype._init = function () {
var self = this;
var needPop = createStore.call(this);
_init.apply(this, arguments); _init.apply(this, arguments);
needPop && popTarget(); needPop && popTarget();
}; };
@ -166,6 +172,7 @@
_.each(["_mount"], function (name) { _.each(["_mount"], function (name) {
var old = BI.Widget.prototype[name]; var old = BI.Widget.prototype[name];
old && (BI.Widget.prototype[name] = function () { old && (BI.Widget.prototype[name] = function () {
createStore.call(this);
this.store && pushTarget(this.store); this.store && pushTarget(this.store);
var res = old.apply(this, arguments); var res = old.apply(this, arguments);
this.store && popTarget(); this.store && popTarget();

33
src/core/widget.js

@ -5,6 +5,13 @@
* *
* @cfg {JSON} options 配置属性 * @cfg {JSON} options 配置属性
*/ */
!(function () {
var lazy = (typeof document !== 'undefined' &&
typeof document.documentMode === 'number') ||
(typeof navigator !== 'undefined' &&
typeof navigator.userAgent === 'string' &&
/\bEdge\/\d/.test(navigator.userAgent));
BI.Widget = BI.inherit(BI.OB, { BI.Widget = BI.inherit(BI.OB, {
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.Widget.superclass._defaultConfig.apply(this), { return BI.extend(BI.Widget.superclass._defaultConfig.apply(this), {
@ -52,6 +59,7 @@ BI.Widget = BI.inherit(BI.OB, {
this._initElementHeight(); this._initElementHeight();
this._initVisual(); this._initVisual();
this._initState(); this._initState();
if (this.isVisible()) {
if (this.beforeInit) { if (this.beforeInit) {
this.__asking = true; this.__asking = true;
this.beforeInit(BI.bind(this._render, this)); this.beforeInit(BI.bind(this._render, this));
@ -61,6 +69,11 @@ BI.Widget = BI.inherit(BI.OB, {
} else { } else {
this._render(); this._render();
} }
this.rendered = true
}
if (this._isRoot) {
this._mount()
}
}, },
_render: function () { _render: function () {
@ -172,7 +185,7 @@ BI.Widget = BI.inherit(BI.OB, {
_mount: function () { _mount: function () {
var self = this; var self = this;
var isMounted = this._isMounted; var isMounted = this._isMounted;
if (isMounted || !this.isVisible() || this.__asking === true) { if (this._isMounting || isMounted || !this.isVisible() || this.__asking === true) {
return; return;
} }
if (this._isRoot === true) { if (this._isRoot === true) {
@ -183,15 +196,30 @@ BI.Widget = BI.inherit(BI.OB, {
if (!isMounted) { if (!isMounted) {
return; return;
} }
this._isMounting = true
if (!this.rendered) {
if (this.beforeInit) {
this.__asking = true;
this.beforeInit(BI.bind(this._render, this));
if (this.__asking === true) {
this.__async = true;
}
} else {
this._render();
}
}
this.beforeMount && this.beforeMount(); this.beforeMount && this.beforeMount();
this._isMounted = true; this._isMounted = true;
this._mountChildren && this._mountChildren(); lazy && this._mountChildren && this._mountChildren();
BI.each(this._children, function (i, widget) { BI.each(this._children, function (i, widget) {
!self.isEnabled() && widget._setEnable(false); !self.isEnabled() && widget._setEnable(false);
!self.isValid() && widget._setValid(false); !self.isValid() && widget._setValid(false);
widget._mount && widget._mount(); widget._mount && widget._mount();
}); });
!lazy && this._mountChildren && this._mountChildren();
this.mounted && this.mounted(); this.mounted && this.mounted();
this._isMounting = false
}, },
_mountChildren: null, _mountChildren: null,
@ -468,3 +496,4 @@ BI.Widget = BI.inherit(BI.OB, {
this.purgeListeners(); this.purgeListeners();
} }
}); });
})();
Loading…
Cancel
Save