Не существует автоматики, поскольку вы готовы это сделать. У меня была такая же проблема на в этом проекте , и я выяснил, как автоматически создавать несколько хранилищ из JSON response.put следующий код перед вашими сеткамизагружены в extjs4, я поместил следующий код в app.js, чтобы магазины были созданы при инициализации приложения. Магазины будут создаваться автоматически, в зависимости от того, что возвращает JSON:
Ext.Ajax
.request({
url : './account/getadminstores',
callback : function(options, success, response) {
var json = Ext.decode(response.responseText);
var adminStores = new Array();
// setup and intitialize on the fly stores
for ( var key1 in json) {
var storeFields = new Array();
for ( var key2 in json[key1]) {// if
// (i==1){break;}
// console.log(key2);
for ( var key3 in json[key1][key2]) {
storeFields.push(key3);
}
break;
}
;
Ext.define('MA.store.' + key1, {
extend : 'Ext.data.Store',
fields : storeFields,
storeId : key1,
id : 'MA.store.' + key1,
data : json[key1],
proxy: {
type: 'ajax',
url : './account/getadminstores',
reader: {
type: 'json',
root: key1
}
},
autoLoad: true
});
Ext.create('MA.store.' + key1);
}
;
Созданные магазины для вашего случая будут MA.store.root1
и MA.store.root2
, где MA - это пространство имен вашего приложения (и вы должны изменить его на любое пространство имен вашего приложения). Этот код предназначен для extjs4, и вам может потребоваться внести некоторые изменения, чтобы он работал встарые версии. Надеюсь, это поможет.