2011-10-04 119 views
0

我目前在使用Sencha Touch,我试图从使用JSON Views的drupal安装中获取数据。我查看了Sencha API文档,但无法使其运行。Sencha Touch中的JSON数据

我的JSON响应如下:

{ 
    "spots" : [ 
    { 
     "spot" : { 
     "nid" : "10", 
     "created" : "1288868246", 
     "title" : "Almanarre", 
     "type" : "spot", 
     "city" : "Hyères", 
     "country" : "fr", 
     "latitude" : "43.083433", 
     "longitude" : "6.148224" 
     } 
    }, 
    { 
     "spot" : { 
     "nid" : "11", 
     "created" : "1288956341", 
     "title" : "Lac de Neuchâtel", 
     "type" : "spot", 
     "city" : "Dakhla", 
     "country" : "ma", 
     "latitude" : "23.866295", 
     "longitude" : "-15.738344" 
     } 
    }, 
    { 
     "spot" : { 
     "nid" : "12", 
     "created" : "1288958572", 
     "title" : "Zurich", 
     "type" : "spot", 
     "city" : "Zurich", 
     "country" : "ch", 
     "latitude" : "0.000000", 
     "longitude" : "0.000000" 
     } 
    }, 
    { 
     "spot" : { 
     "nid" : "13", 
     "created" : "1289302233", 
     "title" : "Berne", 
     "type" : "spot", 
     "city" : "Berne", 
     "country" : "ch", 
     "latitude" : "46.947999", 
     "longitude" : "7.448148" 
     } 
    }, 
    { 
     "spot" : { 
     "nid" : "14", 
     "created" : "1290266721", 
     "title" : "Dakhla", 
     "type" : "spot", 
     "city" : "Rio de Janeiro", 
     "country" : "br", 
     "latitude" : "-22.903539", 
     "longitude" : "-43.209587" 
     } 
    }, 
    { 
     "spot" : { 
     "nid" : "15", 
     "created" : "1299172773", 
     "title" : "Paje", 
     "type" : "spot", 
     "city" : "Paje", 
     "country" : "tz", 
     "latitude" : "-6.265646", 
     "longitude" : "39.535332" 
     } 
    } 
    ] 
} 

而且我的模型/存储/列表:

Ext.regModel('Spot', { 
      idProperty: 'id', 
      fields : [ 
       { name: 'id', type: 'int'}, 
       { name: 'date', type: 'date', dateFormat: 'c' }, 
       { name: 'title', type: 'string'}, 
       { name: 'type', type: 'string'}, 
       { name: 'country', type: 'string'}, 
       { name : 'city', type: 'string' }, 
       { name : 'lat', type: 'string' }, 
       { name: 'long', type: 'string'} 
      ] 
     }); // Model 


     Ext.regStore('spotStore', { 
      model: 'Spot', 
      proxy: { 
       type: 'ajax', 
       url: '/api/spots/', 
       reader: { 
        type: 'json', 
        root: 'spots' 
       }, 
       autoload: true 
      } 
     }); 
ks.views.spotsList = new Ext.List({ 
      id: 'spotsList', 
      store: 'spotStore', 
      itemTpl: '<div class="list-item-title">{title}</div>' + '<div class="list-item-narrative">{country}</div>', 
      onItemDisclosure: function(record){ 

      }, 
      listeners: { 
       'render': function (thisComponent) { 
        thisComponent.getStore().load(); 
       } 
      } 
     }); 

的调用时,它会创建的6个项目的准确的数字列表。但我不能让变量在itemTpl显示...

任何想法?

非常感谢!

回答

0

问题在于您在创建商店时提到的根变量。我建议以JSON格式 即

{ 
    "spots": [ 
     { 
      "nid": "10", 
      "created": "1288868246", 
      "title": "Almanarre", 
      "type": "spot", 
      "city": "Hyères", 
      "country": "fr", 
      "latitude": "43.083433", 
      "longitude": "6.148224" 
     }, 
     { 
      "nid": "11", 
      "created": "1288956341", 
      "title": "Lac de Neuchâtel", 
      "type": "spot", 
      "city": "Dakhla", 
      "country": "ma", 
      "latitude": "23.866295", 
      "longitude": "-15.738344" 
     }, 
     { 
      "nid": "12", 
      "created": "1288958572", 
      "title": "Zurich", 
      "type": "spot", 
      "city": "Zurich", 
      "country": "ch", 
      "latitude": "0.000000", 
      "longitude": "0.000000" 
     }, 
     { 
      "nid": "13", 
      "created": "1289302233", 
      "title": "Berne", 
      "type": "spot", 
      "city": "Berne", 
      "country": "ch", 
      "latitude": "46.947999", 
      "longitude": "7.448148" 
     }, 
     { 
      "nid": "14", 
      "created": "1290266721", 
      "title": "Dakhla", 
      "type": "spot", 
      "city": "Rio de Janeiro", 
      "country": "br", 
      "latitude": "-22.903539", 
      "longitude": "-43.209587" 
     }, 
     { 
      "nid": "15", 
      "created": "1299172773", 
      "title": "Paje", 
      "type": "spot", 
      "city": "Paje", 
      "country": "tz", 
      "latitude": "-6.265646", 
      "longitude": "39.535332" 
     } 
    ] 
} 

希望这将有助于一些变化...