Browse Source

整理代码

es6
guy 3 years ago
parent
commit
62d4950896
  1. 124
      src/core/4.widget.js

124
src/core/4.widget.js

@ -40,7 +40,7 @@
cls: "", cls: "",
css: null, css: null,
vdom: false // vdom: false
}); });
}, },
@ -195,9 +195,9 @@
this.element = BI.Widget._renderEngine.createElement(this); this.element = BI.Widget._renderEngine.createElement(this);
} }
this.element._isWidget = true; this.element._isWidget = true;
var widgets = this.element.data("__widgets") || []; // var widgets = this.element.data("__widgets") || [];
widgets.push(this); // widgets.push(this);
this.element.data("__widgets", widgets); // this.element.data("__widgets", widgets);
this._initCurrent(); this._initCurrent();
}, },
@ -243,52 +243,7 @@
var self = this; var self = this;
var isMounted = this._isMounted; var isMounted = this._isMounted;
this.__async === true && isMounted && callLifeHook(this, "beforeMount"); this.__async === true && isMounted && callLifeHook(this, "beforeMount");
if (!this._initVNode()) { // if (!this._initVNode()) {
var render = BI.isFunction(this.options.render) ? this.options.render : this.render;
var els = render && render.call(this);
els = BI.Plugin.getRender(this.options.type, els);
if (BI.isPlainObject(els)) {
els = [els];
}
if (BI.isArray(els)) {
BI.each(els, function (i, el) {
if (el) {
BI._lazyCreateWidget(el, {
element: self
});
}
});
}
}
this._mount();
if (this.__async === true && isMounted) {
callLifeHook(this, "mounted");
this.fireEvent(BI.Events.MOUNT);
}
},
_initVNode: function () {
if (this.options.vdom) {
var div = document.createElement("div");
var element = this.element;
element.append(div);
this.vnode = this._renderVNode();
BI.patchVNode(div, this.vnode);
// 去除这个临时的div
BI.DOM.hang([div]);
element.attr("style", this.vnode.elm.getAttribute("style"));
element.addClass(this.vnode.elm.getAttribute("class"));
element.empty();
BI.each(BI.jQuery(this.vnode.elm).children(), function (i, node) {
element.append(node);
});
return true;
}
return false;
},
_renderVNode: function () {
var self = this;
var render = BI.isFunction(this.options.render) ? this.options.render : this.render; var render = BI.isFunction(this.options.render) ? this.options.render : this.render;
var els = render && render.call(this); var els = render && render.call(this);
els = BI.Plugin.getRender(this.options.type, els); els = BI.Plugin.getRender(this.options.type, els);
@ -296,20 +251,65 @@
els = [els]; els = [els];
} }
if (BI.isArray(els)) { if (BI.isArray(els)) {
var container = document.createElement("div");
this._children = {};
BI.each(els, function (i, el) { BI.each(els, function (i, el) {
if (el) { if (el) {
var w = BI._lazyCreateWidget(el, { BI._lazyCreateWidget(el, {
element: container element: self
}); });
self.addWidget(w);
} }
}); });
} }
return BI.Element2Vnode(container); // }
this._mount();
if (this.__async === true && isMounted) {
callLifeHook(this, "mounted");
this.fireEvent(BI.Events.MOUNT);
}
}, },
// _initVNode: function () {
// if (this.options.vdom) {
// var div = document.createElement("div");
// var element = this.element;
// element.append(div);
// this.vnode = this._renderVNode();
// BI.patchVNode(div, this.vnode);
// // 去除这个临时的div
// BI.DOM.hang([div]);
// element.attr("style", this.vnode.elm.getAttribute("style"));
// element.addClass(this.vnode.elm.getAttribute("class"));
// element.empty();
// BI.each(BI.jQuery(this.vnode.elm).children(), function (i, node) {
// element.append(node);
// });
// return true;
// }
// return false;
// },
// _renderVNode: function () {
// var self = this;
// var render = BI.isFunction(this.options.render) ? this.options.render : this.render;
// var els = render && render.call(this);
// els = BI.Plugin.getRender(this.options.type, els);
// if (BI.isPlainObject(els)) {
// els = [els];
// }
// if (BI.isArray(els)) {
// var container = document.createElement("div");
// this._children = {};
// BI.each(els, function (i, el) {
// if (el) {
// var w = BI._lazyCreateWidget(el, {
// element: container
// });
// self.addWidget(w);
// }
// });
// }
// return BI.Element2Vnode(container);
// },
_setParent: function (parent) { _setParent: function (parent) {
this._parent = parent; this._parent = parent;
}, },
@ -647,12 +647,12 @@
if (this.__async === true || this.__asking === true) { if (this.__async === true || this.__asking === true) {
return; return;
} }
if (this.options.vdom) { // if (this.options.vdom) {
var vnode = this._renderVNode(); // var vnode = this._renderVNode();
BI.patchVNode(this.vnode, vnode); // BI.patchVNode(this.vnode, vnode);
this.vnode = vnode; // this.vnode = vnode;
return; // return;
} // }
// this._isMounted = false; // this._isMounted = false;
// this.purgeListeners(); // this.purgeListeners();
this._empty(); this._empty();

Loading…
Cancel
Save