Невозможно отобразить модель в JsonStore с помощью JsonReader в Sencha Touch
Я столкнулся с проблемой в sencha при отображении модели Ext.data.JsonStore с использованием Ext.data.JsonReader.
Ответ 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 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
} );
Я ожидаю, что модель "mycabinet" будет заполнена "моделью сервера". Однако отображение не происходит. Я даже пытался использовать преобразование без какого-либо успеха (имя:'DeviceId', отображение:'id',convert: function(v){return v.id;})
Любая помощь будет высоко оценена. Спасибо
2 ответа
Удалите опцию "fields" из вашего Reader и замените "CabinetName" на {name: "CabinetName", отображение: "firstname"} в конфигурации вашей модели. Кроме того, idProperty также должен войти в конфигурацию вашей модели.
Следующий код решил мою проблему...
Ext.regModel( 'mycabinet', {
fields: [
{ name : 'DeviceId', type: 'int',mapping:'id' },
{name: 'CabinetName', mapping: 'firstname'}]
});
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'
},
autoLoad: true
} );
Я больше не использую jsonReader.