Как изменить поля в модели? Или как пересоздать модель?
Вернее даже так: как получить модель? Есть такая функция как getModel? Или как пересоздать модель?
|
Получить модель можно таким способом: Ext.ClassManager.get('NameModel')
Для своих целей я решила задачу так: каждый раз создаю модель с уникальным ид в имени (Ext.id()). Мне такое решение не очень нравится, но другого я пока не нашла. |
Ext.ClassManager.get('NameModel') вернёт класс, но не экземпляр. Экземпляры моделей иногда называют записями (records). Есть соответствующие методы loadRecord и getRecord у форм. Обработчики событий иногда получают экземпляры моделей, например, selectionchange у гридов. Записи можно искать в сторах - findRecord и др. У многих компонентов есть метод getStore.
|
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; } } |
Часовой пояс GMT +3, время: 15:40. |