我们已经按照MVC模式使用Extjs 4.2开发了一个应用程序。我们的项目文件夹设置如下:
WebContent
--> app
-->controller
-->model
-->store
-->view
app.html
app.js
在app.js中,我们定义了Ext.application下的所有模型、控制器和存储
Ext.application({
name: 'MyProject',
autoCreateViewport: true,
models: [
'Model1',
'Model2'
],
stores: [
'store1',
'store2'
]
(视图和控制器类似)
这一切对我们来说都很好。现在我们需要将所有这些模型、存储、控制器和视图连接到一个app-all.js中,并在我们的app.html中使用它。我在网上读过很多关于如何使用Sencha cmd工具做到这一点的帖子,但对我来说都不适用,因为我们有安装cmd工具的限制,我们需要在构建时使用Maven生成连接和缩小的文件。我找到了一个解决方案,通过使用JSBuilder2,我可以获得一个串联的+缩小的app.js.
现在的问题是,当我使用这个缩小的文件时,所有单独的js文件仍在下载中。就像我删除了单独的js文件一样,我得到了404错误,应用程序无法加载。
我想这是因为我们在app.js中定义模型、视图和控制器的方式;他们仍在各自的文件夹中寻找js类文件。
如果你对此有任何解决方案,请分享。
您可以使用Ext.loader的enabled属性禁用动态加载程序(http://docs.sencha.com/extjs/4.2.2/#/api/Ext。Loader cfg enabled):
Ext.Loader.setConfig({ enabled: false })
必须将此代码放在包含框架文件之后,但放在应用程序文件之前。
这应该可以防止ExtJS试图下载文件。您需要确保您使用的所有框架和应用程序类都包含在页面中。