使用 store Sencha Touch 2 将数据加载到列表中并且不出现
Posted
技术标签:
【中文标题】使用 store Sencha Touch 2 将数据加载到列表中并且不出现【英文标题】:Loading data into List using store Sencha Touch 2 and don't appear 【发布时间】:2015-08-20 21:28:28 【问题描述】:我按照此处发布的示例使用 store Sencha Touch 2 将数据加载到列表中,它似乎可以工作,但是当我尝试做同样的事情时,什么都没有显示
我是 sencha touch 的新手,对它了解不多 谁能告诉我我做错了什么?
这是代码:
主要:
var blogsStore = Ext.create("GS.store.blogs"); //put this in the items list
Ext.define('GS.view.Main',
extend:'Ext.navigation.View',
xtype:'blog',
requires:[
'Ext.dataview.List',
'Ext.data.proxy.JsonP',
'Ext.data.Store',
'GS.store.blogs',
'GS.model.BlogModel'
],
config:
title:'Blog',
iconCls:'star',
items:[
xtype:'list',
itemTpl:'title',
title:'Recent Posts',
store: blogsStore //Store instance here. And items are in array, not Object
]
);
型号:
Ext.define('GS.model.BlogModel',
extend: 'Ext.data.Model',
config:
fields: [
name: 'title', type: 'auto' ,
name: 'author', type: 'auto' ,
name: 'content', type: 'auto'
]
);
商店:
Ext.define('GS.store.blogs',
extend:'Ext.data.Store',
requires: [
'GS.model.BlogModel',
'Ext.data.proxy.JsonP',
],
config:
model:'GS.model.BlogModel',
autoLoad :true,
proxy:
type:'jsonp',
url:'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog',
reader:
type:'json',
rootProperty:'responseData.feed.entries'
);
app.js:
Ext.application(
name: 'GS',
requires: [
'Ext.MessageBox'
],
views: [
'Main'
],
stores: [
'blogs'
],
models:[
'BlogModel'
],
icon:
'57': 'resources/icons/Icon.png',
'72': 'resources/icons/Icon~ipad.png',
'114': 'resources/icons/Icon@2x.png',
'144': 'resources/icons/Icon~ipad@2x.png'
,
isIconPrecomposed: true,
startupImage:
'320x460': 'resources/startup/320x460.jpg',
'640x920': 'resources/startup/640x920.png',
'768x1004': 'resources/startup/768x1004.png',
'748x1024': 'resources/startup/748x1024.png',
'1536x2008': 'resources/startup/1536x2008.png',
'1496x2048': 'resources/startup/1496x2048.png'
,
launch: function()
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('GS.view.Main'));
,
onUpdated: function()
Ext.Msg.confirm(
"Application Update",
"This application has just successfully been updated to the latest version. Reload now?",
function(buttonId)
if (buttonId === 'yes')
window.location.reload();
);
);
【问题讨论】:
【参考方案1】:我发现了错误 在声明 rootProperty 时,我尝试访问返回的 json 中的“条目”元素,但该属性不存在 然后你应该修改rootProperty:
rootProperty:'responseData.feed'
现在应用程序可以正常工作了
【讨论】:
以上是关于使用 store Sencha Touch 2 将数据加载到列表中并且不出现的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sencha Touch 2 中选择性地填充 Store
Sencha Touch 2:同一个 Store 中的两个 REST 请求
如何在 Sencha Touch 2 proxy/model/store/whatever 上设置 CRUD 方法?