2012-07-12 87 views
2

我在EXTJS 4.1 MVC架构中工作。对此我完全陌生,并且我在考虑是否有一种在商店文件中拥有多个商店的方法。EXTJS 4 MVC架构

例如,我们有两个目录,模型和商店,每个目录都有文件。在商店文件夹中有一个名为Locations.js的文件。 Adn我想在这个文件里面定义三个存储。例如:'Regions','Area','City'

因此,首先当我尝试定义第一个存储时,萤火虫显示错误找不到store/regions.js文件。而它应该查找的文件实际上是Locations.js文件。 有没有办法解决这个问题,还是商店名称和文件名应该是相同的,而且我们只能存储在一个文件中。

+0

“定义第一家店铺”究竟是什么意思?在控制器中? – Izhaki 2012-07-12 12:13:30

+0

我只是想让程序试图找到app/store/Regions.js,而不是试图找到app/store/Locations.js中的商店'地区' – rosebrit3 2012-07-12 13:03:43

+0

他意味着实例化商店,这会触发Loader获取相应的文件,它找不到。 – 2012-07-12 13:06:03

回答

3

加载程序只知道如何在自己的文件中找到类。你可以通过手动加载文件来完成,但这样做比它的价值更麻烦,并且你将失去Ext构建依赖树的能力,并使用SDK工具进行缩小。

坚持每个文件一个类。您可以尽可能深入,因此您的文件系统可能具有以下内容:

App/store/location/Region.js 
App/store/location/Area.js 
App/store/location/City.js 

只要确保您的类具有相应的名称即可。 (例如App.store.location.Region) 您甚至可以拥有其他所有扩展的基地App.store.location.Location。如果这是一个大项目,我还发现从一开始就将Ext.data.Store划分子目录非常有用(使App.store.Store),并确保所有商店都能扩展该项目。

2

这是由Ext.loader引起的。它提供了一个动态加载“类”的系统。所以是的,当你有一个对象MyApp.store.Regions它应该在商店文件夹内的文件。

但这不应该是一个大问题。您可以使用sencha构建工具缩小1个文件。

您也可以使用disable加载程序并手动加载。 (但我不建议这样做)