2011-11-22 50 views
0

我尝试在我的Sencha触摸应用程序中显示一些数据,但它不起作用...并且我找不到我做错了什么。使用web服务加载senchaTouch应用程序中的数据返回json

我webSiste返回谁像这样

[{"name":"a","id":1}]

脚本获取JSON和显示它JSON对象:

Ext.regApplication({ name: 'Command', 
    phoneStartupScreen: 'phone-startup.png', 
    phoneIcon: 'apple-touch-icon.png', 
    launch: function(){ 
     this.viewport = new Ext.Panel(
     { 
      layout: 'fit', 
      fullscreen: true, 
      items: [{xtype: 'list', 
         itemTpl: new Ext.XTemplate('<div>{name}</div>'), 
         store: stores 
         }], 
      dockedItems: [{xtype: "toolbar", 
          dock: "top", 
          title: 'MovieCommand', 
          items: [{ui: 'back',text: 'back',handler: function(){}}] 
          }] 
     }); 
    } 
}); 

Ext.regModel('Commands', { 
    fields: ['name', 'id' ] 

    }); 

var stores = new Ext.data.Store(
     {model: 'Commands', 
     proxy: {type: 'scripttag', 
       url: 'http://localhost:8080/GTI710/commandes/liste.htm', 

        format: 'sencha', 
       reader: new Ext.data.JsonReader ({ 
         type: 'json', 

        }) 
       }, 

     }); 
stores.load(); 

我没有任何错误在java脚本,但没有显示。 我只想显示“a”但它不起作用,我不知道为什么...

回答

0

您正在使用的ScriptTagProxy需要服务器响应,该服务器由合法的Javascript代码组成。

具体而言,编码与所需的JSON数据的回调函数你什么作为其第一个参数:

someCallback([{ “名称”: “一”, “ID”:1}] );

someCallback的名称由Sencha Touch在发送请求时动态生成。换句话说,您尝试用静态文件存储响应将不起作用。

someCallback的名称作为Sencha Touch发送的GET请求中的参数传递,其中的密钥默认为callback

如果你不想有一个网络服务器作为数据源,结帐Ext.util.JSONP

+0

感谢您的帮助,我终于成功地做了我想做的事情 – Musashi974