2011-05-24 63 views
0

我嘗試通過元數據將字段配置加載到json商店。 JSON的是:商店的元數據將不會加載

{ 
    "rows":[ 
     { 
     "datev":"02.01.2011", 
     "w1":"100", 
     "w2":"200" 
     }, 
     { 
     "datev":"02.01.2011", 
     "w1":"300", 
     "w2":"50" 
     }, 
     { 
     "datev":"03.01.2011", 
     "w1":"10", 
     "w2":"450" 
     } 
    ], 
    "metaData":{ 
     "fields":[ 
     { 
      "name":"datev" 
     } 
     ], 
     "root":"rows" 
    } 
} 

和我的店鋪是:

var test = new Ext.data.JsonStore({ 
        url: 'test.php'  
      }); 
test.load(); 

元數據不會加載。代碼有什麼問題?

回答

0

我認爲你需要添加一個JSON讀者

var reader = new Ext.data.JsonReader({ 
     fields: [] 
}); 

var store = new Ext.data.Store({ 
    nocache : true, 
    reader : reader, 
    autoLoad : true, 
    remoteSort : true, 
    proxy : new Ext.data.HttpProxy({ 
     url : '/getjson?queryable=featureType&featureType=Electronic%20Device', 
     method : 'GET' 
    }) 

也許

var store = new Ext.data.JsonStore({ 
    url: 'somewhere', 
    fields: [] 
}); 
+0

它沒有幫助。我認爲JsonStore沒有屬性「讀者」 – lvil 2011-05-24 18:22:51

+0

林相當肯定你需要一個JSONReader在那裏,因爲這是理解元數據的對象http://dev.sencha.com/deploy/ext-3.3.1 /docs/?class=Ext.data.JsonReader – Dve 2011-05-24 18:26:43

+0

from api:「一個JsonStore將自動配置一個Ext.data.JsonReader。」 – lvil 2011-05-24 18:29:28

0

您沒有指定ID屬性,也不Root屬性。這是我的代碼,我希望這可以幫助

var EStore = new Ext.data.JsonStore 
    ({ 
     api: { read: 'getAssignedJobs', 
      create: 'createAssignedJobs', 
      update: 'updateAssignedJobs' 
    }, 
    root: 'jobData', 
    idProperty: 'Id', 
    autoSave: true, 
    batch: false, 
    successProperty: 'success', 
    writer: new Ext.data.JsonWriter({ encode: true, writeAllFields: true }), 
    fields: [ 
     { name: 'Id', type: 'int' }, 
     { name: 'ResourceId', mapping: 'fitter_id', type: 'int' }, 
     { name: 'StartDate', type: 'date', format: 'd/m/Y G:i' }, 
     { name: 'EndDate', type: 'date', format: 'd/m/Y G:i' }, 
     { name: 'status', type: 'int' }, 
     { name: 'job_id', type: 'int' } 
    ] 
});