沒有automagic,你願意do.i在this project上有同樣的問題,我想出瞭如何從JSON響應中自動創建多個商店。在你的網格被加載之前輸入以下代碼。在extjs4中,我把下面的代碼在app.js這樣的商店將被創建時,應用程序是initialized.The商店將被自動創建,依賴於什麼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,並且您可能需要對其進行一些修改使它在舊版本中工作。希望它有幫助。
我們可以使用, '{ 「成功」:真實, 中 「root1」: \t \t { \t \t 「ID」:1, \t \t 「名」: 「喬恩」, \t \t 「姓」: 「Doe的」 \t \t}, \t \t \t { \t \t 「ID」:2, \t \t 「名稱」: 「Jane」,請 \t \t 「姓」: 「Doe的」 \t \t} \t \t], \t 「根-2」:[ \t \t { \t \t 「ID」:1, \t \t 「名」: 「傑克」, \t \t 「姓」: 「布朗」 \t \t}, \t \t \t { \t \t 「ID」:2, \t \t 「名」: 「克里斯」, \t \t 「姓」: 「布朗」 \t \t} \t \t] }' – vtokmak 2012-02-17 22:54:03