使用 store sencha touch 2 将数据加载到 List
Posted
技术标签:
【中文标题】使用 store sencha touch 2 将数据加载到 List【英文标题】:Loading data into List using store sencha touch 2 【发布时间】:2012-03-31 19:24:12 【问题描述】:我使用 Sencha touch 2 创建了导航视图。导航视图具有列表组件,我想使用商店和模型加载它。我根据需要创建了模型和存储。在运行我的应用程序时,列表不会呈现任何数据。
它还在 conolse [Ext.dataview.List#applyStore] The specified Store cannot be found
中给出警告。我不确定这个错误是什么意思。
这是我的 mvc 代码,
型号:
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',
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'
);
查看:
Ext.define('GS.view.Blog',
extend:'Ext.navigation.View',
xtype:'blog',
requires:[
'Ext.dataview.List',
'Ext.data.proxy.JsonP',
'Ext.data.Store',
'GS.store.blogs'
],
config:
title:'Blog',
iconCls:'star',
items:
xtype:'list',
itemTpl:'title',
title:'Recent Posts',
store:'GS.store.blogs'
);
谁能指出我缺少什么/ 任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:列表的items
中的store
属性必须是实例,而不是类的名称。 GS.store.blogs
是类名。您需要使用Ext.create
创建此类的一个实例,并将该实例传递给items
。哦,是的,你的items
的语法也是错误的。需要是数组[]
而不是对象。所以像:
var blogsStore = Ext.create("GS.store.blogs"); //put this in the items list
Ext.define('GS.view.Blog',
extend:'Ext.navigation.View',
xtype:'blog',
requires:[
'Ext.dataview.List',
'Ext.data.proxy.JsonP',
'Ext.data.Store',
'GS.store.blogs'
],
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.create 将创建我的商店的新实例。如果我想在任何地方都使用我的同一个商店,那么我必须将它添加到我缺少的 app.jsstores:['blogs']
。另外store:'GS.store.blogs'
我改成了'store:'blogs'',现在可以正常工作了。
此警告 [Ext.dataview.List#applyStore] The specified Store cannot be found
已通过在博客商店中添加 requires:['GS.model.BlogModel']
得到解决。
我创建了一次商店实例,然后使用Ext.data.StoreManager.lookup
在任何地方使用同一个商店。很高兴知道你的方法也有效;我学到了一些新东西:)以上是关于使用 store sencha touch 2 将数据加载到 List的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sencha Touch 2 中选择性地填充 Store
Sencha Touch 2:同一个 Store 中的两个 REST 请求
如何在 Sencha Touch 2 proxy/model/store/whatever 上设置 CRUD 方法?