自定义骨干模型以使用/ documents / 6 / editor等网址

时间:2014-10-17 10:34:00

标签: backbone.js

是否可以覆盖骨干模型的url方法,将id插入url字符串的中间。

即。我不想从这个

获取
documents/6

但是这个

documents/6/editor

的模拟更新
documents/6/editor

目前,骨干网坚持始终将id附加到url字符串的末尾。

我试过

urlRoot: function(){
  return "/documents" + this.id + "/editor";
}

虽然这适用于从服务器获取模型,但它在更新时失败。它好像在尝试网址

/documents/6/editor/6 

而不是

/documents/6/editor

1 个答案:

答案 0 :(得分:2)

覆盖Model.urlRoot会改变您网址的前缀,稍后会在Model.url中使用

尝试

var M = Backbone.Model.extend({
    urlRoot: '/documents',
    url: function() {
        var base = Backbone.Model.prototype.url.call(this);
        if (this.isNew()) return base;
        return base+'/editor';
    }
});

演示http://jsfiddle.net/nikoshr/pjr81pLd/