Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.10.2017, 15:28
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Почему не работает 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
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2017, 13:33
Аватар для kolka
Кандидат Javascript-наук
Отправить личное сообщение для kolka Посмотреть профиль Найти все сообщения от kolka
 
Регистрация: 07.06.2010
Сообщений: 146

Могу и ошибаться, по моему, в данном случае нужно создать 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);
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2017, 13:34
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Спасибо за подсказку. Способ жутковатый конечно, но похоже работоспособный.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему Jquery не работает в arcticmodal при вызове окна с большой высотой? sergey24 Общие вопросы Javascript 5 21.09.2017 15:49
Почему не работает? Rora Общие вопросы Javascript 7 10.05.2017 10:09
cookie почему не работает скрипт Alven Общие вопросы Javascript 1 01.09.2013 03:17
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41
Почему не работает функция? Vitaly jQuery 10 31.07.2009 17:01