2011-08-01 62 views
0

我试图实现简单的JSON操作:SenchaTouch的简单JSON示例

我想在我的页面上写入来自JSON格式文件的文本。

的文件是这样的:(data.json)

{ 
    "id": "0", 
    "name":"myname"  
} 

该脚本获取JSON:(main.js)

Ext.setup({ 
onReady: function() { 

    Ext.regModel('Person', { 
     fields: [ 
      {name: 'id', type: 'string'}, 
      {name: 'name', type: 'string'} 
     ] 
    }); 

    //I want the name to be written on the page 
    var itemTemplate = new Ext.XTemplate(
     '<tpl for=".">', 
     '{name}', 
     '</tpl>'); 

    // I get and decode the Json from data.json 
    var jsonStore = new Ext.data.Store({ 
     model: "Person", 
     proxy: { 
      type: 'ajax', 
      url: 'data.json', 
      reader: { 
       type: 'json' 
      } 
     }, 
     autoLoad: true 
    }); 

    // The panel should get the stored Result and display it  
    var jsonPanel = new Ext.Panel ({ 
     title: "json",    
     fullscreen: true,   
     items: [ 
      { 
       xtype: 'list', 
       store: jsonStore, 
       itemTpl:itemTemplate,     
      } 
     ] 
    }); 

} 
}); 

index.html文件调用的所有文件及以上sencha-touch.js.css。 我只是不能看到任何写在页面上的东西。

如果有人能给我一个关于我在做什么错误的线索,这将有很大帮助。

回答

0

尝试把你的JSON对象数组符号,像这样:

[{ 
    "id": "0", 
    "name":"myname"  
}, { 
    "id": "1", 
    "name":"myname2"  
}] 
+0

确定语法不正确,但它不足以让它工作 – COcdm

+0

我在这里试过并且该示例有效。你把这些文件放到Apache的文件夹(或其他网络服务器)中,还是试图直接从浏览器运行? – eduardosouza

0

至于我记得(至少是在ST1的情况下,我没有ST2尝试),阿贾克斯阅读器不能用于访问本地文件。你需要通过网络服务器发送你的json数据