2015-06-18 4 views
0

Мы постепенно привыкли к ExtJS, и мы недавно начали использовать модели просмотра для привязки данных к нашим панелям форм. В целом мы стараемся, чтобы наши модели ExtJS соответствовали нашим базовым java-моделям, и любое требуемое преобразование выполняется с помощью формул модели модели. При просмотре общих данных это прекрасно работает, когда мы хотим показать более конкретные данные, которые на самом деле не существуют в какой-либо модели, мы не знаем, как подойти к их загрузке и созданию на клиенте. Например:Как загрузить немодельные данные в режиме просмотра ExtJS?

У меня есть модель папки с id и description. При загрузке модели папки с помощью запроса на чтение модель загружает описание из базы данных и т. Д. То же самое с моделью пользователя. Два свойства id и username. Мой вопрос: что, если у меня есть панель формы, где я показываю пользователя и его связанную папку. Что касается уровня базы данных, существует таблица 1: 1, где user id подключен к folder id, чтобы соответствовать пользователю и его личной папке. Однако у нас нет этой информации в любой из моделей. Существует специальная услуга под названием getUserFolder, которая возвращает объект folder для конкретного user id. Как мне поместить это в модель представления моей панели и как я могу заняться процессом загрузки?

Должен ли я создать новую модель, представляющую таблицу и использовать запрос GET, чтобы получить ассоциацию, а затем использовать formulas получить совпадающую folder id для данного user? Должен ли я использовать обычный Ext.Ajax.request, чтобы получить folder id, а затем загрузить модель папки? Должен ли я создать общую службу, которая возвращает все данные (пользователь и папка), а затем сопоставить их на стороне клиента при обратном вызове запроса через setData обеих моделей? Какова наилучшая практика?

TL; Загрузка данных модели в режиме просмотра отлично работает, но как решить загрузку немодельных данных в модели просмотра? Они требуются только в конкретных сценариях и не включены в создание модели.

+0

Вы изучали [ассоциации моделей] (http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.association.Associationassociations) в ExtJS? Вы можете моделировать [one2one] (http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.association.HasOne), one2many отношения и т. Д. –

+0

Кажется, что я сформулировал мой вопрос был не совсем ясен. Вот ссылка на новый вопрос: http://stackoverflow.com/questions/30920508/best-practice-for-loading-non-model-data-in-extjs – Konstantine

ответ

0

Ваша задача имеет очень мало общего с представлением. Это модель, модель данных :) В ExtJS есть концепция associations, в том числе 1:1 scenario. Поэтому я бы рекомендовал изучить его.

+0

Похоже, что я сформулировал свой вопрос wasn ' t ясно. Вот ссылка на новый вопрос: http://stackoverflow.com/questions/30920508/best-practice-for-loading-non-model-data-in-extjs – Konstantine

0

Связывание данных и ViewModel, которые обеспечивают его мощное дополнение к Ext JS.

Ext.create ('Ext.panel.Panel', { название: 'Простая форма',

viewModel: { 
    type: 'test' 
}, 

layout: 'form', 
defaultType: 'textfield', 

items: [{ 
    fieldLabel: 'First Name', 
    bind: '{firstName}' // uses "test" ViewModel from parent 
},{ 
    fieldLabel: 'Last Name', 
    bind: '{lastName}' 
}] 

});

+0

Похоже, что я сформулировал свой вопрос wasn ' t ясно. Вот ссылка на новый вопрос: http://stackoverflow.com/questions/30920508/best-practice-for-loading-non-model-data-in-extjs – Konstantine

Смежные вопросы