Я разработал приложение на основе шаблона MVC. Поэтому я также определил мои прокси, поля и валидаторы в моей модели. Вот, например, модель для списка стран:
Модель
Ext.define('LT.model.Country',{
extend: 'Ext.data.Model',
fields: [{name: 'id',type: 'int'},
{name: 'name', type: 'string'},
],
validations: [
{type: 'length', field: 'name', min: 2}
],
proxy: {
type: 'rest',
url: '/country',
reader: {
type: 'json'
},
writer: {
type: 'json'
}
}
});
А вот магазин для использования этой модели:
Магазин:
Ext.define('LT.store.Country', {
extend: 'LT.base.store.Base',
model: 'LT.model.Country'
});
Магазин отображается на панели сетки , где я использую плагин RowEditor , чтобы включить добавление и редактирование строк непосредственно в виде сетки
Сетка:
Ext.define('LT.view.country.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.country-list',
plugins: [
Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit: 2,
clicksToMoveEditor: 1
})
],
store : 'Country',
columns: [
{header: 'ID', dataIndex: 'id', width: 50},
{header: 'Name', dataIndex: 'name', flex: 3, editor: 'textfield'},
],
tbar: [{
xtype: 'button',
action: 'add',
text: 'Add'
},{
xtype: 'button',
action: 'delete',
text: 'Delete'
}]
});
Моя проблема теперь заключается в том, что Ошибки проверки не отображаются , если вы редактируете данные в виде сетки. Если данные не соответствуют критериям проверки, они не передаются прокси-серверу (это нормально), но пользователь также не получает сообщение об ошибке о том, что введенные данные недействительны .
Я нашел некоторые (не очень красивые) обходные пути - но, может быть, кто-нибудь знает другое решение для добавления функциональности проверки в редактирование строк в extjs?
Спасибо заранее и ура,
Michael