Rai*_*l24 20 javascript http backbone.js
我用这个叫保存:
console.log(this.model.isNew());
console.log(this.model);
this.model.save({}, {
success: function (model, response, options) {
console.log(response);
},
error: function (model, xhr, options) {
console.log(xhr.result.Errors);
}
});
Run Code Online (Sandbox Code Playgroud)
在isNew()
返回false.但是输出this.model
的ID为0.(this.model.id也是0)
我的网址是 url: ROOTAREA + "/Expenses/Entry/",
更新工作正常,并按预期使用PUT.
编辑:这是我的模型的一部分:
defaults: function () {
return {
DocumentDate: "",
JobNo_: "",
PhaseCode: "",
WorkTypeCode: "",
Description: "",
Quantity: 0,
UnitCost: 0,
ExpenseCurrencyCode: "",
ReimbursementCurrencyCode: "",
UnitofMeasureCode: "DIEM",
LineNo_: 0
};
},
idAttribute: "LineNo_",
Run Code Online (Sandbox Code Playgroud)
ton*_*o.j 27
对于新条目,甚至不应存在ID.问题在于您未显示的部分 - 在您实例化的部分中,创建并填充模型.
以下是Backbone文档的引用:
如果模型还没有
id
,则认为它是新的.
从您的代码中可以清楚地看出,您正在分配一个id属性.你的后端应该这样做.因为你是在客户端上做的,所以骨干网认为它不是新的,并且使用它PUT
Lan*_*ane 20
上面的答案是正确的,如果model
你.save
有一个id
属性骨干将做一个PUT
而不是一个POST
.
只需添加type: 'POST'
到保存块即可覆盖此行为:
var fooModel = new Backbone.Model({ id: 1});
fooModel.save(null, {
type: 'POST'
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15320 次 |
最近记录: |