Невозможно отобразить модель в JsonStore с помощью JsonReader в Sencha Touch - PullRequest
0 голосов
/ 05 октября 2011

Я столкнулся с проблемой в 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:

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 ]

0 голосов
/ 06 октября 2011

Следующий код решил мою проблему ...

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.

0 голосов
/ 05 октября 2011

Удалите опцию «fields» из вашего Reader и измените 'CabinetName' на {name: 'CabinetName', отображение: 'firstname'} в конфигурации вашей модели. Кроме того, idProperty также должно войти в конфигурацию вашей модели.

...