是否可以在Ext JS中使用相对路径的类?假设我有一个这样的目录结构:
appRoot
`- some
`- really
`- long
`- path
|- MyClass.js
`- MyClassDependency.js
MyClass.js
看起来像这样:
Ext.define('RootName.some.really.long.path.MyClass', {
requires: ['RootName.some.really.long.path.MyClassDependency'],
// Snipped.
});
MyClassDependency.js
就像这样:
Ext.define('RootName.some.really.long.path.MyClassDependency', {
// Snipped.
});
有没有办法在不引用整个类名的情况下表达这种依赖?例如,我想移动MyClass.js
和MyClassDependency.js
所在的文件夹,而不必更新MyClass.js
所拥有的每个依赖项。
答案 0 :(得分:0)
到目前为止,没有标准的方法可以这样做
从理论上讲,可以覆盖方法Ext.ClassManager.define
以预先添加当前的#34;名称空间"到requires
数组中的类。
Ext.override(Ext.ClassManager, {
define : function(className, data) {
//prepend data.requires with className
this.callSuper(arguments);
}
});
这样做,Sencha Cmd将无法构建应用的缩小版本,因为它无法再解决需求,只要您不在构建中包含所有文件。
我不会做这个尝试,因为你用ExtJs更新破坏某些东西的风险是巨大的。
另一种方法是使用通配符。
Ext.define('TestApp.view.Main', {
requires: [
'TestApp.view.*'
]
});
我想到的最后一件事是使用别名。
Ext.define('TestApp.view.MainDep', {
alias: ['module1.mainDep']
});
Ext.define('TestApp.view.Main', {
requires: [
'module1.mainDep',
'module2.*',
]
});