我已经在我的app.js
创建使用的Ext JS 4 controllers
属性的应用程序只包含主控制器:使用Sencha Cmd的具有动态加载控制器
Ext.application({
name: 'MyApp',
appFolder: 'app',
controllers: [
"main.App"
],
loadController: function(controller) {
var oController = this.getController(controller);
oController.init(this);
oController.onLaunch(this);
}
});
MyApp.main.App
控制器负载使用getController()方法名称的附加控制器(请参阅loadController()方法)。这些控制器是动态加载的,并未在我的index.html
文件中列出。
为了生成量产版本部署到服务器我使用煎茶Cmd的在我的应用程序文件夹中发出以下命令:
sencha app build
工具正常完成和压缩所有文件合并成一个大的所有类。 JS。问题是我的动态加载的控制器不包含在该文件中。
哪种方法可以使动态加载的控制器(总数超过100个)被Sencha Cmd缩小和处理?
我知道,我可以在我的app.js
中列出它们,或者使用Ext.require
包含在某个文件中,但我正在寻求正确的方法来在我的构建中自动包含超过100个不同的控制器,视图,模型和商店。我相信Ext JS的其他用户正在创建大型应用程序并以某种方式进行构建,我会很感激任何建议或只是success stories
,这将帮助我找到正确的构建方法。
感谢链接'uses'。它可以是有用的。但那样我所有的控制器都将通过一个巨大的'uses'数组来包含。这不仅使开发变得更加复杂(每当添加一个新的控制器时,还应该将其添加到'uses'部分中),而且还将所有控制器放入'all-classes.js'中,这使得动态控制器加载绝对(为什么要动态加载,如果控制器已经下载,并且可以在'all-classes.js'中使用所有剩余的东西?) – bhovhannes
@bhovhannes我在开发时看到了不足之处,但请注意,它只是确保该类存在。我个人使用由服务器端驱动的方法,其中前端由用户角色创建。我知道当我给他们打电话时,我的控制器已经在那里了,这就是你应该关心的。但我必须承认,我并不习惯Sencha CMD工具。也许有一个参数可以让你在构建过程中包含整个文件夹,这可能是你正在寻找的解决方案。 – sra
我在build.xml中添加了一个代码,当我执行'sencha app build'时,它将我的控制器的所有名称收集到'uses'数组中。这样我在开发过程中就不用填写'uses'数组,只需将控制器添加到'controller'文件夹中,因为它们都是从我的应用程序动态加载的。 – bhovhannes