diff --git a/src/base/list/virtualgrouplist.js b/src/base/list/virtualgrouplist.js index a4a811c73..34b11e800 100644 --- a/src/base/list/virtualgrouplist.js +++ b/src/base/list/virtualgrouplist.js @@ -27,7 +27,7 @@ BI.VirtualGroupList = BI.inherit(BI.Widget, { render: function () { var self = this, o = this.options; - + return { type: "bi.vertical", items: [{ @@ -97,12 +97,13 @@ BI.VirtualGroupList = BI.inherit(BI.Widget, { this.container[self.renderedIndex === -1 ? "populate" : "addItems"](items.map(function (item, i) { return o.itemFormatter(item, index + i); }), this); - var addedHeight = getElementHeight() - lastHeight; + var elementHeight = getElementHeight(); + var addedHeight = elementHeight - lastHeight; this.tree.set(cnt, addedHeight); this.renderedIndex = cnt; cnt++; index += o.blockSize; - lastHeight = this.renderedIndex === -1 ? 0 : getElementHeight(); + lastHeight = this.renderedIndex === -1 ? 0 : elementHeight; } }, diff --git a/src/core/5.inject.js b/src/core/5.inject.js index 9e0ae8503..0554740f7 100644 --- a/src/core/5.inject.js +++ b/src/core/5.inject.js @@ -411,7 +411,7 @@ // 根据配置属性生成widget var createWidget = function (config, context, lazy) { - var cls = kv[config.type]; + var cls = BI.isFunction(config.type) ? config.type : kv[config.type]; if (!cls) { throw new Error("组件: [" + config.type + "] 未定义"); @@ -449,9 +449,10 @@ } else if (item.el && (item.el.type || options.type)) { el = BI.extend({}, options, item.el); } - + if (el) { - runConfigFunction(el.type); + var elType = (el.type && el.type.xtype) || el.type; + runConfigFunction(elType); } // 先把准备环境准备好 @@ -466,13 +467,14 @@ return item; } if (el) { - w = BI.Plugin.getWidget(el.type, el); - if (w.type === el.type) { - if (BI.Plugin.hasObject(el.type)) { + w = BI.Plugin.getWidget(elType, el); + var wType = (w.type && w.type.xtype) || w.type; + if (wType === elType) { + if (BI.Plugin.hasObject(elType)) { w.listeners = (w.listeners || []).concat([{ eventName: BI.Events.MOUNT, action: function () { - BI.Plugin.getObject(el.type, this); + BI.Plugin.getObject(elType, this); } }]); }