Extjs代理只是将脏字段发布到服务器,而不是所有文件结构

Moh*_*eza 3 ajax proxy model extjs

我有一个模特:

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'
    },
},
Run Code Online (Sandbox Code Playgroud)

});

和一个表单,通过loadRecord()加载数据 ,我的处理程序代码为:

    var form = this.up('form').getForm();
      if (form.isValid()) { 
              form.getRecord().save();
       }
Run Code Online (Sandbox Code Playgroud)

它通过我的代理模型做出帖子请求.但请求的主体只有脏(编辑)字段.为什么我没有其他领域?

但在请求身体我只有脏字段.为什么?我知道updateRecord()使用getFieldValues([onlyDirty = false]),如何发送所有字段值?

我使用extjs 5

Moh*_*eza 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'
    },
Run Code Online (Sandbox Code Playgroud)