Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何构建可用于多个URL的主干模型?_Javascript_Url_Backbone.js - Fatal编程技术网

Javascript 如何构建可用于多个URL的主干模型?

Javascript 如何构建可用于多个URL的主干模型?,javascript,url,backbone.js,Javascript,Url,Backbone.js,我正在构建我的第一个webapp,其中有一个模型(这是一个“引用”),我可以从API的多个来源获得。例如,有一个调用获取最新的报价: '/quote/latest' 我有一个,从中我得到一个随机的: '/quote/random' 还有一些变化。因此,为了让第一个开始,我首先制作了一个简单的模型: var QuoteModel = Backbone.Model.extend({ urlRoot: 'quote/latest' }); 我现在必须为每个URL制作一个模型吗?或者如何使

我正在构建我的第一个webapp,其中有一个模型(这是一个“引用”),我可以从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");

这可能会对您有所帮助:您还可以使用单独的
fetchLatest
fetchRandom
方法。如果您不想覆盖
fetch
,您只需要确保
请求的默认值是合理的。