Backbone.js:PATCH url端点错误

时间:2013-01-15 15:24:34

标签: backbone.js

我有一个这样的模型:

    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>/

感谢。

1 个答案:

答案 0 :(得分:3)

您应该设置Model.url,而不是设置Model.urlRoot属性。来自docs

  

如果您正在使用集合外部的模型,请指定urlRoot,以启用默认URL函数以根据模型ID生成URL。 “[urlRoot] / ID”

如果模型属于某个集合,您也可以不指定Model.urlRoot,而是设置Collection.url