URL重写 - 在Backbone中路由

时间:2014-08-08 06:26:50

标签: backbone.js

我有一个www.example.com域名,我需要它来使URL友好。该域名必须是多语言,如下所示:

http://{language}.example.com/restufullurls

如何在Backbone / Marrionette中实现,仅使用路线?

1 个答案:

答案 0 :(得分:2)

首先在某处创建一个配置文件:

var config = {
   lang: 'en',
   domain: 'example.com'
};

然后创建一个基本模型,重写所有模型的url。这样做是通过在配置文件中附加正确的URL来重写您在模型中指定的URL:

var BaseModel = Backbone.Model.extend({
   initialize: function(){
      this.url = 'http://' + config.lang + '.' + config.domain + '/' + this.url;
   }
});

然后,每当您需要新模型时,您可以扩展基础

var SomeModel = BaseModel.extend({
   url: 'some/rest/url'
});

如果您需要切换语言,请执行

config.lang = 'new-language';

如果您想使用与提供文件相同的URL,请执行以下操作:

var BaseModel = Backbone.Model.extend({
   initialize: function(){
      this.url = window.location.origin + '/' + this.url;
   }
});