Я создал форму для редактирования, чтобы обновить массив комментариев новым комментарием. Все хорошо до сих пор.Форма EXTJS: как обновить запись, а не целую запись
Магазин от MongoDB.
Запись имеет дату ISO и при ее обновлении меняет ее на строку.
Отсюда:
"tmx" : ISODate("2015-07-19T00:26:53.000Z")
к этому:
"tmx" : "Sun Jul 19 2015 00:55:23 GMT+0100 (Hora de Verão de GMT)"
Пример записи:
"tmx" : ISODate("2015-07-19T00:26:53.000Z"),
"comments" : [{
"comment" : "tury",
"date" : "2015-11-19T01:15:13.552Z"
}]
Моя форма:
var form = new Ext.form.FormPanel({
width: 500,
items: [{
xtype: 'grid',
store: storearray,
margin: "0 0 10 0",
columns: [{
id: 'comment',
header: "Text",
autoSizeColumn: true,
flex: 1,
sortable: true,
dataIndex: 'comment'
}, {
id: 'date',
header: "Date",
dateFormat: 'm-d-Y g:i A',
autoSizeColumn: true,
flex: 1,
sortable: true,
dataIndex: 'date'
}],
layout: {
type: 'fit',
align: 'stretch'
}
}, {
xtype: 'textarea',
id: 'new',
text: 'Add Comment',
style: 'width: 100%',
fieldLabel: 'Add Comment',
layout: {},
name: 'comment'
}],
dockedItems: [{
xtype: 'toolbar',
flex: 1,
dock: 'bottom',
ui: 'footer',
layout: {
pack: 'end',
type: 'hbox'
},
items: [{
xtype: 'button',
text: 'Cancel',
itemId: 'cancel',
iconCls: 'cancel'
}, {
xtype: 'button',
text: 'Save',
itemId: 'save',
iconCls: 'save',
handler: function (form, rowIndex, colIndex) {
var recform = this.up('form').getForm().getRecord();
var names = recform.get('comments');
var arraysize = names.length;
var val = Ext.getCmp('new').getValue();
var actual = new Date().toISOString();
if(val == "") {
alert('Comentario Vazio');
} else {
names.push({'comment': val, 'date': actual});
recform.save();
var newRecord = store.sync();
this.up('form').getForm().setRecord(newRecord);
this.up('form').refresh();
}
}
}]
}]
});
Что я хочу сделать, это просто обновить поле или оставить мою дату в формате ISODate. и новая дата комментария должна быть вставлена asISODate.
Любые советы?
Только несколько вопросов: действительно ли параметр 'autoSizeColumn' является параметром конфигурации? Это не '' autoSizeColumn' '(https://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.view.Table-method-autoSizeColumn) метод, а не конфиг ? Не конфликтуют ли 'autoSizeColumn' (если это конфиг) и' flex' config? – Michel