我正在使用Backbone.js构建我的第一个Web应用程序,其中有一个模型(可以称为“ Quote”),可以从API的多个来源获得该模型。例如,有一个电话获得最新报价:

'/quote/latest'


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

'/quote/random'


还有更多变化。因此,为了获得第一个结果,我首先制作了一个简单的模型:

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


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

最佳答案

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

09-28 04:55