1

有没有办法以Ext.Loader这种方式进行配置,以便每个命名空间处理一个文件?每个文件有一个类通常是可以的,但有时它需要有很多文件。有任何想法吗?

4

2 回答 2

1

如果您有所有类的列表,那么您可以添加适当的映射,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;
        };
    }())
});
于 2014-07-14T18:12:38.117 回答
0

作为替代方案 - 如果您有一个“私有”类,该类仅供创建它的类使用(或与之结合使用),您可以将多个Ext.define语句添加到文件中,并以这种方式拥有多个类.

这是帮助对相关类进行分组并保持文件混乱的一种方法。

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

于 2014-07-21T11:09:24.870 回答