EXTJS 4模型试图创建一个持久化记录(而不是更新)



为什么使用rest代理调用POST/Create操作,然后在后续保存时调用相同的POST/Create方法而不是PUT/Update方法,记录会成功持久化?

海报

var ref = beginQuestionnaireControl.getPegfileRef();
var Pegfile = Ext.create('Pegfect.model.Pegfile', {
  Id: 0,
  Reference: ref
});
Pegfile.save({
  scope: this,
  success: function (pegfile, operation) {
    this.activePegfile = pegfile;
    this.startQuestions();
  },
  failure: function () {
    alert('That ref is not unique');
  }
});

也张贴(期望PUT)

this.activePegfile.save({
      success: function () {
        successCallback();
      },
      failure: function () {
        alert('oops, error saving Pegfile');
      }
    });

代理

proxy:
  {
    type: 'rest',
    url: 'Pegfile',
    timeout: 120000,
    noCache: false,
    reader:
    {
        type: 'json',
        root: 'data',
        successProperty: 'success'
    },
    writer:
    {
        type: 'json',
        writeAllFields: true
    }
  }

诀窍是在Model上定义一个"Id"属性:

idProperty: 'Id'

在这个问题上为一些约定而哭泣。。。

最新更新