javascript - 在 ExtJs4 中重命名组件的路径
问题描述
我有一个具有以下结构的 Ext Js 4.1.1 应用程序,我试图切换两个文件夹的名称空间:
public/
├──app/
│ ├──controller/
│ ├──model/
│ ├──store/
│ └──view/
│
└──vendor/
我的 app-Loader.js 包含路径映射:
Ext.Loader.setConfig({
enabled: false,
disableCaching: false,
paths: {
'App': 'public/vendor',
'vendor': 'public/app'
}
});
我已经在每个文件夹位置重命名了组件及其用法,但是每当我更改其中任何一个时,假设供应商文件夹中的灯箱程序停止工作,它不会在浏览器上呈现,文件没有加载并且我没有收到错误消息。我尝试创建这样的第三条路径:
'tmp' : 'public/vendor'
然后将所述组件定义从
Ext.define('App.Lightbox', {}
至
Ext.define('tmp.Lightbox',{}
期望更改生效,应用程序将完全编译并显示内容。取而代之的是,页面在登录后停止加载并显示白屏,浏览器控制台不显示更改的文件。有什么我想重命名的吗?我对 ExtJs 不太熟悉。任何帮助将不胜感激。
编辑:供应商文件夹下组件的重命名有效,但截至目前,我无法重命名应用程序下的任何组件,即使添加了具有相同路径的占位符命名空间也是如此。
编辑:我发现 app.js 中有这个,这让我更加困惑:
app = Ext.create('App.AbstractApplication', {
name: 'vendor',
appFolder: 'public/js/app'
}
文档说它为名称配置中配置的命名空间加载了 Ext.loader.setPath() 。此处的更改也会破坏应用程序
解决方案
该name
参数需要正确重命名,同时使用新命名空间重命名文件夹内的其他组件,因此我将 app.js 更改为:
app = Ext.create('App.AbstractApplication', {
name: 'app',
appFolder: 'public/js/app'
}
在 app-loader.js 我将其更改为:
Ext.Loader.setConfig({
enabled: false,
disableCaching: false,
paths: {
'App': 'public/app',
'vendor': 'public/vendor'
}
});
以及相应的组件,例如:
公共/应用程序/Lightbox.js
Ext.define('vendor.Lightbox'){}
变得:
Ext.define('App.Lightbox'){}
推荐阅读
- php - Laravel Collection <> 非数据库实体的模型混合?
- python - 我知道即使 scikit-bio 已成功安装,也没有 skbio 模块
- c++ - 使用 for 循环 C++ 计算浮点类型平均值
- php - Laravel:无效的参数号:未定义参数
- events - 基于事件的与版本化事件的集成
- amazon-web-services - 用于 SFTP 只写存储桶访问的 AWS 传输?
- c# - 使用 GroupBy() 和 Sum() 的 Linq 查询和未分组的返回值
- nomachine-nx - 使用 @nrwl/web:package 编译时获取 css 文件
- json - 如何在不附加 jq 命令的情况下始终使用 jq 很好地显示 json 输出
- php - SQL查询从数据库中的一个表中获取所有帖子,但来自特定用户的最多5个条目?