Как изменить поля в модели? Или как пересоздать модель?
Вернее даже так: как получить модель? Есть такая функция как 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, время: 04:40. |