1

我有一个这样的模型:

    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();
        });

但是当我做补丁时:

this.article.save({comment: comment}, {patch: true, accessToken: true});

请求是正确的PATCH,但是端点错误,请求是这样的:

PATCH mydomain.com/articles/

如您所见,应该是:

PATCH mydomain.com/articles/<last-model-id-created>/

谢谢。

4

1 回答 1

3

而不是设置Model.url属性,您应该设置Model.urlRoot. 从文档

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

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

于 2013-01-15T15:36:49.547 回答