商店的元数据不会加载

时间:2011-05-24 18:04:53

标签: json extjs store jsonstore

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

无法加载元数据。代码有什么问题?

2 个答案:

答案 0 :(得分: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: []
});

答案 1 :(得分: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' }
     ]
});