Sencha Touch 2 Ajax代理未在列表中显示数据
希望有人能帮忙。。我已经找了好几个小时试图找到解决这个问题的办法 我试图在商店中使用ajax代理填充列表。如果我将json数据内联,它可以完美地工作,但我似乎无法从代理中获取任何返回的数据,即使url在浏览器中返回完全相同的json数据。我做错了什么 商店:Sencha Touch 2 Ajax代理未在列表中显示数据,ajax,proxy,touch,extjs,Ajax,Proxy,Touch,Extjs,希望有人能帮忙。。我已经找了好几个小时试图找到解决这个问题的办法 我试图在商店中使用ajax代理填充列表。如果我将json数据内联,它可以完美地工作,但我似乎无法从代理中获取任何返回的数据,即使url在浏览器中返回完全相同的json数据。我做错了什么 商店: Ext.define('m3.store.News', { extend: 'Ext.data.Store', requires: ['m3.model.News'], config: { model: 'm3.
Ext.define('m3.store.News', {
extend: 'Ext.data.Store',
requires: ['m3.model.News'],
config: {
model: 'm3.model.News',
autoload: true,
proxy: {
type: 'ajax',
url: 'http://localhost/lib',
reader: {
type: 'json'
}
}
});
如果我内联添加数据,它可以完美地工作:
Ext.define('m3.store.News', {
extend: 'Ext.data.Store',
requires: ['m3.model.News'],
config: {
model: 'm3.model.News',
autoload: true,
proxy: {
type: 'ajax',
url: 'http://localhost/lib',
reader: {
type: 'json'
}
},
data: [{"title":"Test Title 1","id":"1","text":"<div>Test Text 1<\/div>"},{"title":"Test Title 2","id":"2","text":"<div>Test Text 2<\/div>"}]
});
Ext.define('m3.store.News',{
扩展:“Ext.data.Store”,
要求:['m3.model.News'],
配置:{
模型:“m3.model.News”,
自动加载:对,
代理:{
键入:“ajax”,
网址:'http://localhost/lib',
读者:{
键入:“json”
}
},
数据:[{“标题”:“测试标题1”,“id”:“1”,“文本”:“测试文本1”},{“标题”:“测试标题2”,“id”:“2”,“文本”:“测试文本2”}]
});
其他一切都很好,所以我不会发布其他文件,如果您需要,请告诉我
我甚至尝试过静态json文件,但代理似乎没有返回任何内容
有没有办法在控制台中测试来自代理的响应?我尝试了“Ext.getStore('News');”,但它返回一个空数组
使用Sencha Touch 2 MVC
它看起来很简单,但我就是无法让它工作..非常感谢!我想您在这里缺少的是
rootProperty
,同时通过Ajax
代理加载数据
您需要提到这个属性来标识json的根
reader : {
type:'json',
rootProperty:'data'
}
json数据的格式如下所示(根应为“数据”)
{
“数据”:[
{
“标题”:“测试标题1”,
“id”:“1”,
“文本”:“测试文本1”
},
{
“标题”:“测试标题2”,
“id”:“2”,
“文本”:“测试文本2”
}
]
}
我认为,它现在应该可以进行这些更改。好的,在控制台中尝试了Ext.getStore('News').load();并将数据拉入。现在,我想不出在应用程序中放置该调用的位置。我恐怕是新手区域。谢谢。只是将其添加到主app.js的启动功能中,而且似乎一切都正常。那么,处理方法是什么呢“自动加载”?配置不应该这样做吗?aaaaaggghhhh!自动加载不是自动加载!!!!!!!!!!!!!!!!!Noob central。。
{
"data": [
{
"title": "Test Title 1",
"id": "1",
"text": "<div>Test Text 1</div>"
},
{
"title": "Test Title 2",
"id": "2",
"text": "<div>Test Text 2</div>"
}
]
}