Browse Source

feature: 支持type可以直接传函数,没有xtype都行

es6
guy 2 years ago
parent
commit
422594d6da
  1. 16
      src/core/5.inject.js

16
src/core/5.inject.js

@ -411,7 +411,7 @@
// 根据配置属性生成widget // 根据配置属性生成widget
var createWidget = function (config, context, lazy) { var createWidget = function (config, context, lazy) {
var cls = kv[config.type]; var cls = BI.isFunction(config.type) ? config.type : kv[config.type];
if (!cls) { if (!cls) {
throw new Error("组件: [" + config.type + "] 未定义"); throw new Error("组件: [" + config.type + "] 未定义");
@ -449,9 +449,10 @@
} else if (item.el && (item.el.type || options.type)) { } else if (item.el && (item.el.type || options.type)) {
el = BI.extend({}, options, item.el); el = BI.extend({}, options, item.el);
} }
if (el) { if (el) {
runConfigFunction(el.type); var elType = (el.type && el.type.xtype) || el.type;
runConfigFunction(elType);
} }
// 先把准备环境准备好 // 先把准备环境准备好
@ -466,13 +467,14 @@
return item; return item;
} }
if (el) { if (el) {
w = BI.Plugin.getWidget(el.type, el); w = BI.Plugin.getWidget(elType, el);
if (w.type === el.type) { var wType = (w.type && w.type.xtype) || w.type;
if (BI.Plugin.hasObject(el.type)) { if (wType === elType) {
if (BI.Plugin.hasObject(elType)) {
w.listeners = (w.listeners || []).concat([{ w.listeners = (w.listeners || []).concat([{
eventName: BI.Events.MOUNT, eventName: BI.Events.MOUNT,
action: function () { action: function () {
BI.Plugin.getObject(el.type, this); BI.Plugin.getObject(elType, this);
} }
}]); }]);
} }

Loading…
Cancel
Save