我有一个这样的模型:
define([
'jquery',
'backbone'
], function ($) {
var MyModel = Backbone.Model.extend({
url: 'articles/',
initialize: function(){
}
});
return MyModel;
});
这是保存对象的代码:
article = new Article();
status = t.currentTarget.textContent;
article.set('ready', {'status': status});
coords = this.model.get('location').coords;
article.set('geo', {'lat': coords.latitude, 'lng': coords.longitude});
article.save(null, { accessToken: true }).done(function(){
self.hideIcons();
});
但是当我做PATCH时:
this.article.save({comment: comment}, {patch: true, accessToken: true});
请求正确PATCH,但端点错误,请求如下:
PATCH mydomain.com/articles/
如您所见,应该是:
PATCH mydomain.com/articles/<last-model-id-created>/
感谢。
答案 0 :(得分:3)
您应该设置Model.url
,而不是设置Model.urlRoot
属性。来自docs:
如果您正在使用集合外部的模型,请指定urlRoot,以启用默认URL函数以根据模型ID生成URL。 “[urlRoot] / ID”
如果模型属于某个集合,您也可以不指定Model.urlRoot
,而是设置Collection.url
。