我有一个模特:
Ext.define('CrudTest.model.User', {
extend: 'Ext.data.Model',
idProperty: 'Id',
fields: [
{ name: 'Id', type: 'int' },
{ name: 'Name', type: 'string' },
{ name: 'PhoneNumber', type: 'int' },
{ name: 'Address', type: 'string' },
{ name: 'StateId', type: 'int', reference: 'State' },
],
validators: [
{ type: 'presence', field: 'Name', message: 'define name, please' },
{ type: 'length', field: 'PhoneNumber', max: 8, messsage: 'lower than 8 digit' },
],
proxy: {
type: 'ajax',
api: {
create: 'home/new',
read: 'home/users',
update: 'home/Edit',
destroy: 'home/Delete'
},
},
});
以及通过 loadRecord()加载数据的表单以及我提交按钮的处理程序代码:
var form = this.up('form').getForm();
if (form.isValid()) {
form.getRecord().save();
}
它通过我的代理模型提出了一个帖子请求。但请求的主体只有脏(编辑)字段。为什么我没有其他领域?
但在请求正文中我只有脏字段。为什么?我知道updateRecord()使用 getFieldValues([onlyDirty = false]),如何发送所有字段值?
我使用extjs 5
答案 0 :(得分:6)
终于找到了问题。 Ext.data.writer.Writer有一个配置属性 writeAllFields
所以我将代理更改为:
proxy: {
writer:{ writeAllFields:true },
type: 'ajax', //also works with type: 'direct',
api: {
create: 'home/new',
read: 'home/users',
update: 'home/Edit',
destroy: 'home/Delete'
},
答案 1 :(得分:0)
您可以在模型上将crtical:true设置为您想要写入的任何字段,无论是否更改,例如
0x0A