List 要显示存储的Sencha列表
首先:关于这件事,到处都有很多问题。我花了一天的大部分时间通读了它们,显然我仍然无法理解这一点 我从一个httprequest(而不是标准的ajax调用)获取我的存储数据,这正在工作并将我的数据添加到存储中。但不管我怎么做,这些数据都不会填充列表。当前我的代码如下所示: 型号:List 要显示存储的Sencha列表,list,extjs,List,Extjs,首先:关于这件事,到处都有很多问题。我花了一天的大部分时间通读了它们,显然我仍然无法理解这一点 我从一个httprequest(而不是标准的ajax调用)获取我的存储数据,这正在工作并将我的数据添加到存储中。但不管我怎么做,这些数据都不会填充列表。当前我的代码如下所示: 型号: Ext.define('estarCamera.model.Event', { extend: 'Ext.data.Model', config: { fields: [
Ext.define('estarCamera.model.Event', {
extend: 'Ext.data.Model',
config: {
fields: [
'Id',
'Title',
'Content',
'Image',
'Location',
'Latitude',
'Longitude',
'Radius',
'Starts',
'Expires',
'Prestart'
]
}
});
商店:
Ext.define('estarCamera.store.Events', {
extend: 'Ext.data.Store',
config: {
model: 'estarCamera.model.Event',
storeId: 'EventStore'
}
});
数据正在填充存储:
var jsonResponse = JSON.parse(xhr.responseText);
if(jsonResponse.status == "Success"){
//Success
var eventsJsn = JSON.parse(jsonResponse.message);
$.each(eventsJsn, function(){
$.each(this, function(k,v){
//Events root element
$.each(this, function(k,v){
//Each 'Event' element
var eStore = Ext.getStore('EventStore');
eStore.add({
Id: this.ID,
Title: decodeURIComponent(this.Title),
Content: decodeURIComponent(this.Content),
Image: this.Image,
Location: this.Location,
Latitude: this.Latitude,
Longitude: this.Longitude,
Radius: this.Radius,
Starts: this.Starts,
Expires: this.Expires,
Prestart: this.Prestart
});
eStore.sync();
})
});
});
理想情况下,这将填充:
Ext.define('estarCamera.view.Events', {
extend: 'Ext.Panel',
xtype: 'events',
requires: [
'estarCamera.store.Events',
'Ext.form.FieldSet',
'Ext.List'
],
config: {
title:'Events',
iconCls: 'star',
layout: 'vbox',
items:[
{
docked: 'top',
xtype: 'toolbar',
title: 'Active Events'
},
{
xtype: 'container',
layout: 'fit',
flex: 10,
items:[{
xtype:'list',
title: 'Events',
width: '100%',
height: '100%',
store: 'Events',
styleHtmlContent: true,
itemTpl: new Ext.XTemplate(
'<div class="outerEvent">',
'<h1>title{Title}</h1>',
'<p>{Content}</p>',
'</div>'
)
}]
}]
}
});
Ext.define('estarCamera.view.Events'{
扩展:“Ext.Panel”,
xtype:'事件',
要求:[
'estarCamera.store.Events',
“Ext.form.FieldSet”,
“外部列表”
],
配置:{
标题:"事件",,
iconCls:'明星',
布局:“vbox”,
项目:[
{
停靠:“顶部”,
xtype:'工具栏',
标题:“活动事件”
},
{
xtype:'容器',
布局:“适合”,
弹性:10,
项目:[{
xtype:“列表”,
标题:"活动",,
宽度:“100%”,
高度:“100%”,
存储:“事件”,
styleHtmlContent:对,
itemTpl:new Ext.XTemplate(
'',
“title{title}”,
“{Content}”,
''
)
}]
}]
}
});
有人知道为什么会这样吗?好吧,现在觉得有点傻了。。最终(在尴尬地等待了很长一段时间后)发现这是因为我的列表试图引用“事件”,这是我商店的名称以及我认为它应该如何工作。将此更改为“EventStore”(我的商店的storeid),效果非常好。您能看到商店中的数据吗?就像在控制台日志中一样??是的,我可以使用Ext.getStore('EventStore').getAt(0).get(“Title”)等返回存储数据。因此我知道这已经填充了存储。