Browse Source

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

es6
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;
BI.Widget.prototype._init = function () {
var self = this;
function createStore() {
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);
this._storeCreated = true;
if (store) {
pushTarget(store);
needPop = true;
@ -128,6 +127,13 @@
}
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);
needPop && popTarget();
};
@ -166,6 +172,7 @@
_.each(["_mount"], function (name) {
var old = BI.Widget.prototype[name];
old && (BI.Widget.prototype[name] = function () {
createStore.call(this);
this.store && pushTarget(this.store);
var res = old.apply(this, arguments);
this.store && popTarget();

33
src/core/widget.js

@ -5,6 +5,13 @@
*
* @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, {
_defaultConfig: function () {
return BI.extend(BI.Widget.superclass._defaultConfig.apply(this), {
@ -52,6 +59,7 @@ BI.Widget = BI.inherit(BI.OB, {
this._initElementHeight();
this._initVisual();
this._initState();
if (this.isVisible()) {
if (this.beforeInit) {
this.__asking = true;
this.beforeInit(BI.bind(this._render, this));
@ -61,6 +69,11 @@ BI.Widget = BI.inherit(BI.OB, {
} else {
this._render();
}
this.rendered = true
}
if (this._isRoot) {
this._mount()
}
},
_render: function () {
@ -172,7 +185,7 @@ BI.Widget = BI.inherit(BI.OB, {
_mount: function () {
var self = this;
var isMounted = this._isMounted;
if (isMounted || !this.isVisible() || this.__asking === true) {
if (this._isMounting || isMounted || !this.isVisible() || this.__asking === true) {
return;
}
if (this._isRoot === true) {
@ -183,15 +196,30 @@ BI.Widget = BI.inherit(BI.OB, {
if (!isMounted) {
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._isMounted = true;
this._mountChildren && this._mountChildren();
lazy && this._mountChildren && this._mountChildren();
BI.each(this._children, function (i, widget) {
!self.isEnabled() && widget._setEnable(false);
!self.isValid() && widget._setValid(false);
widget._mount && widget._mount();
});
!lazy && this._mountChildren && this._mountChildren();
this.mounted && this.mounted();
this._isMounting = false
},
_mountChildren: null,
@ -468,3 +496,4 @@ BI.Widget = BI.inherit(BI.OB, {
this.purgeListeners();
}
});
})();
Loading…
Cancel
Save