Почему не работает 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, время: 13:51. |