我制作了一个编辑表单,用新评论更新了一个评论数组。到目前为止一切都很好。
该商店来自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。
有什么建议吗?
答案 0 :(得分:0)
更新记录/模型中的特定字段:
set(fieldName,newValue,[options]):String [] 将给定字段设置为给定值,将实例标记为脏
来源:Extjs model
在你的例子中,如果我理解正确地做出这样的事情:
var recform = this.up('form').getForm().getRecord();
var actual = new Date().toISOString();
recform.set('comments', actual);