我尝试在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”但它不起作用,我不知道为什么......
答案 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。