ExtJS JsonStore 未填充
Posted
技术标签:
【中文标题】ExtJS JsonStore 未填充【英文标题】:ExtJS JsonStore not populating 【发布时间】:2011-04-21 23:38:54 【问题描述】:我的 JsonStore 似乎没有填充。当我运行代码时,它会触发请求,该请求会返回 json。当我检查数据存储时,数据数组是空的。
我错过了什么?谢谢。
我定义了这个 JsonStore:
CCList.ListStore = new Ext.data.JsonStore(
root: 'rows',
idProperty: 'Id',
fields: ['Id', 'Description'],
autoLoad: true,
proxy: new Ext.data.HttpProxy(
method: 'GET',
url: '/costcenters/getjson'
),
listeners:
load: function (obj, records)
Ext.each(records, function (rec)
console.log(rec.get('Id'));
);
);
试图将它绑定到这个 Ext.List
CCList.listPanel = new Ext.List(
id: 'indexList',
store: CCList.ListStore,
itemTpl: '<div class="costcenter">Id-Description</div>'
);
我的网址返回这个 json:
"rows" : [
"Description" : "Jason",
"Id" : "100"
,
"Description" : "Andrew",
"Id" : "200"
]
【问题讨论】:
【参考方案1】:仅供参考,您不是在使用 ExtJS,而是在使用 Sencha Touch,它们是不同的,因此您在以后澄清这一点很重要。
Ext.setup(
onReady: function()
Ext.regModel('CostCenter',
idProperty: 'Id',
fields: ['Id', 'Description']
);
var store = new Ext.data.Store(
model: 'CostCenter',
autoLoad: true,
proxy:
type: 'ajax',
method: 'GET',
url: 'data.json',
reader:
type: 'json',
root: 'rows'
,
listeners:
load: function(obj, records)
Ext.each(records, function(rec)
console.log(rec.get('Id'));
);
);
new Ext.List(
fullscreen: true,
store: store,
itemTpl: '<div class="costcenter">Id-Description</div>'
);
);
【讨论】:
非常感谢。那么 JsonStore 对 Sencha Touch 无效吗? 它在那里,但数据包的工作方式现在有点让它多余,你最好坚持我上面概述的方法。以上是关于ExtJS JsonStore 未填充的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ExtJS 访问从 JsonStore 获取的值?
如何在 ExtJS 3.4 中添加/合并多个 Ext.data.JsonStore