Почему не работает mapping в Ext.data.Model?
Ext.define('User', { extend: 'Ext.data.Model', proxy: { type: 'memory', reader: { type: 'json' } }, fields: [ {mapping: 'ErrorCode', name: 'name', type: 'string'}, {name: 'age', type: 'int', convert: null}, {name: 'phone', type: 'string'}, {name: 'alive', type: 'boolean', defaultValue: true, convert: null} ] }); var usr = Ext.create('User', { ErrorCode: 'test string' }); console.log( // expected "test string" usr.get('name') ) песочница https://fiddle.sencha.com/#view/editor&fiddle/283k |
Могу и ошибаться, по моему, в данном случае нужно создать Store и в него грузить.
Что-то типа: Ext.define('Episode', { extend: 'Ext.data.Model', idProperty: 'Id', fields: [ {name: 'AssetId', type: 'int'}, {name: 'Id', type: 'int'}, {name: 'Notes', type: 'string'}, {name: 'Number', type: 'int'}, {name: 'ProductionNumber', type: 'int'}, {name: 'SeasonId', mapping: 'Season.Id', type: 'int' }, {name: 'SeasonName', mapping: 'Season.Name', type: 'string' }, {name: 'SeasonDesc', mapping: 'Season.Description', type: 'string' }, {name: 'Title', type: 'string'} ] }); var episodeStore = Ext.create('Ext.data.Store', { model: 'Episode', groupField: 'SeasonName', pageSize: 50, proxy: { type: 'memory', reader: { type: 'json', root: 'Episodes' } } var episodeData = { "Episodes": [{ "Id": 1, "AssetId": 787656, "Notes": "My notes", "Number": 1, "ProductionNumber": "0000000001", "Season": { "Id": 2, "Description": "This is my Season No. 11", "Name": "Season 11" }, "SourceSystem": "My System", "Title": "Episode Title 1" }, { "Id": 2, "AssetId": 787656, "Notes": "My notes", "Number": 2, "ProductionNumber": "0000000002", "Season": { "Id": 3, "Description": "This is my Season No. 21", "Name": "Season 21" }, "SourceSystem": "My System", "Title": "Episode Title 2" }, .... ] } и потом episodeStore.loadData(episodeData); |
Спасибо за подсказку. Способ жутковатый конечно, но похоже работоспособный.
|
Часовой пояс GMT +3, время: 01:35. |