guy 3 years ago
parent
commit
34666f397c
  1. 27
      src/core/widget.js

27
src/core/widget.js

@ -226,35 +226,36 @@
* @returns {boolean} * @returns {boolean}
* @private * @private
*/ */
_mount: function (force, deep, lifeHook, predicate) { _mount: function (force, deep, lifeHook, predicate, layer, queue) {
if (this.__beforeMount(force, deep, lifeHook, predicate)) {
this.__afterMount(lifeHook, predicate);
return true;
}
return false;
},
__beforeMount: function (force, deep, lifeHook, predicate) {
var self = this; var self = this;
if (!layer) {
layer = 0;
}
if (!queue) {
queue = [];
}
if (!force && (this._isMounted || !this.isVisible() || this.__asking === true || !(this._isRoot === true || (this._parent && this._parent._isMounted === true)))) { if (!force && (this._isMounted || !this.isVisible() || this.__asking === true || !(this._isRoot === true || (this._parent && this._parent._isMounted === true)))) {
return false; return false;
} }
lifeHook !== false && callLifeHook(this, "beforeMount"); lifeHook !== false && callLifeHook(this, "beforeMount");
this._isMounted = true; this._isMounted = true;
queue.push(this);
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.__beforeMount && widget.__beforeMount(deep ? force : false, deep, lifeHook, predicate); widget._mount && widget._mount(deep ? force : false, deep, lifeHook, predicate, layer + 1, queue);
}); });
this._mountChildren && this._mountChildren(); this._mountChildren && this._mountChildren();
if (layer === 0) {
BI.each(queue, function (i, w) {
w.__afterMount(lifeHook, predicate);
});
}
return true; return true;
}, },
__afterMount: function (lifeHook, predicate) { __afterMount: function (lifeHook, predicate) {
if (this._isMounted) { if (this._isMounted) {
BI.each(this._children, function (i, widget) {
widget.__afterMount && widget.__afterMount(lifeHook, predicate);
});
lifeHook !== false && callLifeHook(this, "mounted"); lifeHook !== false && callLifeHook(this, "mounted");
this.fireEvent(BI.Events.MOUNT); this.fireEvent(BI.Events.MOUNT);
predicate && predicate(this); predicate && predicate(this);

Loading…
Cancel
Save