Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2015, 17:36
Аспирант
Отправить личное сообщение для Risa Посмотреть профиль Найти все сообщения от Risa
 
Регистрация: 21.10.2014
Сообщений: 47

Как изменить поля в модели? Или как пересоздать модель?
Вернее даже так: как получить модель? Есть такая функция как getModel? Или как пересоздать модель?
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2015, 19:14
Аспирант
Отправить личное сообщение для Risa Посмотреть профиль Найти все сообщения от Risa
 
Регистрация: 21.10.2014
Сообщений: 47

Получить модель можно таким способом: Ext.ClassManager.get('NameModel')
Для своих целей я решила задачу так: каждый раз создаю модель с уникальным ид в имени (Ext.id()). Мне такое решение не очень нравится, но другого я пока не нашла.
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2015, 22:33
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Ext.ClassManager.get('NameModel') вернёт класс, но не экземпляр. Экземпляры моделей иногда называют записями (records). Есть соответствующие методы loadRecord и getRecord у форм. Обработчики событий иногда получают экземпляры моделей, например, selectionchange у гридов. Записи можно искать в сторах - findRecord и др. У многих компонентов есть метод getStore.

Последний раз редактировалось novikov, 13.02.2015 в 22:39.
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2015, 12:47
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

http://www.sencha.com/blog/deep-dive...ext-js-5-data/

{
    makeStore: function(configuration) {
        
        var storeId = configuration.name;
        var store = 'System.store.gridEditor.' + Ext.String.capitalize(configuration.name);

        Ext.define(store, {
            extend: 'System.store.gridEditor.Store',
            storeId: storeId,
            model: this.makeModel(configuration)
        });
        
        Ext.create(store);
        
        return storeId;
        
    },
    
    makeModel: function(configuration) {
        
        var model = 'System.model.gridEditor.' + Ext.String.capitalize(configuration.name);
        Ext.define(model, {
            extend: 'System.model.gridEditor.Model',
            fields: this.makeFields(configuration),
            proxy: {
                url: configuration.api + configuration.name + '/',
                reader: {
                    type: 'json',
                    rootProperty: 'data',
                    totalProperty: 'totalCount',
                    messageProperty : 'error'
                }
            }
        });
        
        return model;
        
    }
}

Последний раз редактировалось novikov, 31.03.2015 в 11:42.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как сделать связанные поля ввода diakon Элементы интерфейса 2 11.12.2009 16:17
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25