将Ext.Loader配置为每个名称空间有一个文件

Configure Ext.Loader to have one file per namespace

本文关键字:空间 有一个 文件 Ext Loader 配置      更新时间:2023-09-26

是否有一种方法可以配置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语句,并以这种方式拥有多个类。

这是一种帮助对相关类进行分组并减少文件杂乱的方法。

需要注意的是,您不能使用requiresuses来加载这些类

相关文章: