使用返回json的Web服务从sencha Touch app中的db加载数据

时间:2011-11-22 16:35:09

标签: json load sencha-touch

我尝试在Sencha touch应用程序中显示一些数据,但它不起作用......我找不到我做错了什么。

我的webSiste返回一个看起来像这样的json对象

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

脚本正在获取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”但它不起作用,我不知道为什么......

1 个答案:

答案 0 :(得分:0)

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

具体来说,代码是一个回调函数,其中包含所需的JSON数据作为其第一个参数:

  

someCallback([{&#34;名称&#34;:&#34;&#34;&#34; ID&#34;:1}]);

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

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

如果您不想将网络服务器作为数据源,请结帐Ext.util.JSONP