Ext Js App臃肿与商店

时间:2013-06-17 06:51:59

标签: extjs architecture extjs4 extjs4.2

我的应用程序(Ext JS 4.2.1)包含许多网格面板,以及许多商店。在定义商店时,我使用storeId来匹配网格和商店。这些商店中的许多几乎完全相同。示例商店看起来像这样

Ext.define('MyApp.store.UsersStore', {
     model: 'MyApp.model.User',
     storeId: 'UsersStore',
     proxy: {
         type: 'rest',
         url: 'somePrefix/users',
         reader: { 
             type: 'json', 
             totalProperty: 'total', 
             root: 'users'            
         } 
     }
});

另一家商店" AvailableUsersStore"看起来非常相似,它只是使用另一个网址," somePrefix / users /?可用"和另一个storeId," AvailableUsersStore"。所以我的应用程序中有很多冗余的代码行,分布在许多商店文件中。知道如何清理它吗?

1 个答案:

答案 0 :(得分:2)

为您的商店创建基类:

Ext.define('MyApp.store.UsersStore', {
     extend: 'Ext.data.Store',
     model: 'MyApp.model.User',
     proxy: {
         type: 'rest',
         url: 'somePrefix2/users1',
         reader: { 
             type: 'json', 
             totalProperty: 'total', 
             root: 'users'            
         } 
     }
});

然后扩展你的基类:

Ext.define('MyApp.store.AvailableUsersStore', {
     extend: 'MyApp.store.UsersStore',
     storeId: 'userStore1',
     proxy: {
         url: 'somePrefix2/users2',
     }
});

Ext.define('MyApp.store.RemovedUsersStore', {
     extend: 'MyApp.store.UsersStore',
     storeId: 'userStore2',
     proxy: {
         url: 'somePrefix2/users3',
     }
});

查看here进行课程扩展。另请参阅Deft.js以了解extjs中的灵活架构。