商店的元数据将不会加载

问题描述:

我尝试通过元数据将字段配置加载到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(); 

元数据不会加载。代码有什么问题?

我认为你需要添加一个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

您没有指定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' } 
    ] 
});