我正在使用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