ajax之Extjs 代理只是将脏字段发布到服务器,而不是所有字段
zdz8207
阅读:16
2024-09-07 23:24:14
评论:0
我有一个模型:
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
请您参考如下方法:
终于找到问题了。 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.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。