Javascript 将Ext.Loader配置为每个命名空间有一个文件
是否有办法以这种方式配置Javascript 将Ext.Loader配置为每个命名空间有一个文件,javascript,extjs,extjs5,Javascript,Extjs,Extjs5,是否有办法以这种方式配置Ext.Loader,使其能够处理每个命名空间的一个文件? 每个文件有一个类通常是可以的,但有时需要有太多的文件。有什么想法吗?如果您有所有类的列表,那么您可以向Ext.Loader添加适当的映射,如下所示: Ext.Loader.addBaseUrlClassPathMappings({ "Namespace.Class": "path/fileName.js" }); 如果你没有这样的清单,那就没那么简单了。您可以覆盖Ext.configuration.ux
Ext.Loader
,使其能够处理每个命名空间的一个文件?
每个文件有一个类通常是可以的,但有时需要有太多的文件。有什么想法吗?如果您有所有类的列表,那么您可以向
Ext.Loader
添加适当的映射,如下所示:
Ext.Loader.addBaseUrlClassPathMappings({
"Namespace.Class": "path/fileName.js"
});
如果你没有这样的清单,那就没那么简单了。您可以覆盖Ext.configuration.ux.Inventory.getPath
,并在那里进行一些映射。示例代码:
Ext.define('Ext.configuration.ux.Inventory', {
override: 'Ext.Inventory',
getPath: (function () {
var parent = Ext.Inventory.prototype.getPath;
return function (className) {
var result = parent.apply(this, [className]);
// do mapping here
console.log(className + ' -> ' + result);
return result;
};
}())
});
另一种选择是,如果您有一个“私有”类,该类只供创建它的类使用(或与之结合使用),则可以向文件中添加多个
Ext.define
语句,并以这种方式拥有多个类
这是一种帮助分组相关类并将文件杂乱程度降低一点的方法
需要注意的是,不能使用requires
或uses
加载这些类