问题描述
我有一个具有以下结构的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',{}
期待更改生效,该应用将完全编译并显示内容。取而代之的是,页面仅在登录后停止加载并显示白屏,浏览器控制台不显示更改后的文件。 我想重命名吗?我对ExtJ不太熟悉。 任何帮助将不胜感激。
编辑:重命名vendor文件夹下的组件是可行的,但是到目前为止,即使添加具有相同路径的占位符命名空间,我也无法重命名应用程序下的任何组件。
编辑:我发现app.js中存在此问题,这让我更加困惑:
app = Ext.create('App.AbstractApplication',{
name: 'vendor',appFolder: 'public/js/app'
}
documentation表示已使用Ext.loader.setPath()加载了名称config中配置的名称空间。此处的更改也会破坏应用程序
解决方法
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'
}
});
以及相应的组件,例如:
public / app / Lightbox.js
Ext.define('vendor.Lightbox'){}
成为:
Ext.define('App.Lightbox'){}