无法使用 Sencha Touch 中的 JsonReader 映射 JsonStore 中的模型
我在使用 Ext.data.JsonReader 映射 Ext.data.JsonStore 模型时在 sencha 中遇到问题。
来自服务器的 Json 响应(服务器模型):
{"rows":[{"id":1,"firstname":"Bill"},{"id": 2,"firstname":"Ben"}]}
Json 存储中使用的模型:
Ext.regModel( 'mycabinet', {
fields: [
{ name : 'DeviceId', type: 'int' },
'CabinetName']
});
json 阅读器代码:
var iccDeviceReader = new Ext.data.JsonReader({
// metadata configuration options:
idProperty: 'id',
root: 'rows',
fields: [
{name: 'CabinetName', mapping: 'firstname'},
{name:'DeviceId',mapping:'id'}
]
});
json 存储代码:
app.iccDS = new Ext.data.JsonStore( {
model : 'mycabinet',
sorters : 'CabinetName',
getGroupString : function(record) { return record.get('CabinetName')[0]; },
proxy : {
type: 'ajax',
url : '/icc/js/data.js',
reader:iccDeviceReader
},
autoLoad: true
} );
我期望“mycabinet”模型将填充“服务器模型”。但是,映射不会发生。 我什至尝试使用转换但没有成功(名称:'DeviceId',映射:'id',转换:函数(v){return v.id;})
任何帮助将不胜感激。 谢谢
I am facing a problem in sencha while mapping Ext.data.JsonStore model using Ext.data.JsonReader.
Json response from server (server model):
{"rows":[{"id":1,"firstname":"Bill"},{"id": 2,"firstname":"Ben"}]}
Model used in Json Store:
Ext.regModel( 'mycabinet', {
fields: [
{ name : 'DeviceId', type: 'int' },
'CabinetName']
});
json Reader code:
var iccDeviceReader = new Ext.data.JsonReader({
// metadata configuration options:
idProperty: 'id',
root: 'rows',
fields: [
{name: 'CabinetName', mapping: 'firstname'},
{name:'DeviceId',mapping:'id'}
]
});
json store code:
app.iccDS = new Ext.data.JsonStore( {
model : 'mycabinet',
sorters : 'CabinetName',
getGroupString : function(record) { return record.get('CabinetName')[0]; },
proxy : {
type: 'ajax',
url : '/icc/js/data.js',
reader:iccDeviceReader
},
autoLoad: true
} );
I am expecting that "mycabinet" model will get populated with "server model". However, mapping doesnt occur.
I even tried using convert without any success(name:'DeviceId',mapping:'id',convert: function(v){return v.id;})
Any help will be highly appreciated.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从阅读器中删除“fields”选项,并将模型配置中的'CabinetName'更改为{name: 'CabinetName', mapping: 'firstname'}。
此外,idProperty 也应该进入您的模型配置。
Remove the "fields" option from your Reader and change 'CabinetName' to {name: 'CabinetName', mapping: 'firstname'} in your model config.
Also, idProperty should also go into your model config.
以下代码解决了我的问题...
我不再使用 jsonReader 了。
Following code solved my problem...
I am not using jsonReader anymore.