我已经创建了一个localstorage商店,并按照本教程在其中存储了演示值:
http://sureshdotariya.blogspot.com/2013/03/understanding-local-storage-proxy-in.html
一切正常,我已经在chrome中查看了资源中的商店数据,它就在那里,当我加载页面时,它加载正常,没有错误,但它没有显示数据,这里&#39 ;我的观点代码:
Ext.define('MyTest.view.SearchPanel', {
extend: 'Ext.Panel',
xtype: 'searchpanel',
config: {
layout: 'fit',
items: [
{
xtype: 'nestedlist',
title: 'Search Results',
displayField: 'Name',
store: {
storeId: 'UserStore',
fields: ['Name']
},
}]
}
});
我在这里缺少什么?我可以使用本地存储库作为嵌套列表的存储吗?如果是,那么为什么它显示"没有找到任何项目",我已经在app.js中添加了商店,我尝试在此视图中要求它,但这不起作用。
感谢您的帮助,谢谢。
答案 0 :(得分:1)
Ext.dataview.NestedList需要Ext.data.TreeStore而不是Ext.data.Store(在您提供的示例网址中)。
Ext.data.TreeStore中需要root
,defaultRootProperty
配置,项目中需要leaf
属性。
当然,您可以在Ext.data.proxy.LocalStorage中将Ext.data.TreeStore设置为代理,请尝试使用以下代码:
Ext.define('ListApp.model.User', {
extend: 'Ext.data.Model',
config: {
fields: [{
name: 'text',
type: 'string'
}]
}
});
Ext.define('App.store.User', {
config: {
model: 'ListApp.model.User',
defaultRootProperty: 'items',
root: data
proxy: {
type: 'localstorage',
id: 'UserInfo'
}
}
});