如何构建可用于多个URL的Backbone模型?

时间:2014-06-16 06:31:24

标签: javascript url backbone.js

我正在使用Backbone.js建立我的第一个网络应用程序,其中我有一个模型(这是一个"引用"),我可以从几个来源获取API。例如,有一个电话会获得最新的报价:

'/quote/latest'

我从中得到一个随机的一个:

'/quote/random'

还有更多变化。所以为了得到第一个,我首先制作了这个简单的模型:

var QuoteModel = Backbone.Model.extend({
    urlRoot: 'quote/latest'
});

我现在必须为每个网址制作一个模型吗?或者我如何使这个QuoteModel动态化?欢迎所有提示!

1 个答案:

答案 0 :(得分:2)

urlRoot可以是一个返回所需urlRoot的函数。一个简单的例子可能是覆盖提取你想要获取的提取

var QuoteModel = Backbone.Model.extend({
    urlRoot: function(){
      return "/quote/"+this.request
    },

  fetch:function(request){
    this.request = request;
    Backbone.Model.prototype.fetch.call(this);
  }
});


var quoteModel = new QuoteModel();

quoteModel.fetch("new");

here is a code pen where you can see changing what is passed into you the overridden fetch is applied to the super fetch request