Ext js 6: Сетка не показывает все поля для нового вставленного элемента
У меня есть следующая модель и магазин.
Модель:
Ext.define('TruckTask.model.Company', {
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{name: 'id', type: 'int', defaultValue: null},
{name: 'name', type: 'string'},
{name: 'site', type: 'string'},
{name: 'createdDate', type: 'date',
convert: function(rawValue, model) {
var intDate = parseInt(rawValue);
if(intDate > 0){
return Ext.util.Format.date(new Date(intDate), 'd.m.Y');
}
if(typeof(rawValue) == 'object'){
return rawValue;
}
}
},
{name: 'langId', type: 'int'}
]
});
Хранить:
Ext.define('TruckTask.store.Company', {
extend: 'Ext.data.Store',
requires : [
'TruckTask.model.Company',
'TruckTask.config.SecureRestProxy'
],
alias: 'store.company',
storeId: 'company',
model : 'TruckTask.model.Company',
autoLoad: true,
autoSync: true,
proxy: {
type: 'secure-rest',
reader: {
type: 'json'
},
writer: {
type: 'json'
},
api: {
read: '/api/company',
create: '/api/company',
update: '/api/company',
destroy: '/api/company'
}
}
});
Я использую панель сетки для списка этих моделей. Но создание новой модели я делаю через другую форму.
В сетке я определяю магазин:
store: {
type: 'company'
},
и обработчик отправки формы имеет реализацию:
var record = this.getViewModel().get('rec');
var companyStore = Ext.data.StoreManager.lookup('company');
companyStore.add(record);
Таким образом, запись появляется на панели сетки немедленно, но без значения поля createDate. Это значение исходит из ответа сервера.
Как я могу обновить эту запись в сетке, когда я получаю ответ от сервера?
1 ответ
Я думаю, что вы найдете этот ответ полезным. Реализуйте onCreateRecords в своем магазине и установите все, что необходимо установить после создания и сохранения новых записей.