根据语言环境修改$ route templateUrl

时间:2016-01-03 10:54:52

标签: angularjs routes

我想修改路由定义的templateUrl,并使其依赖于用户的语言环境。
例如。 ' /views/en/faq.html'英语和' /views/fr/faq.html'适用于法国用户。
我将区域设置存储在cookie LOCALE 中,但是如何在templateUrl函数中访问该cookie值,因为运行配置函数时$ cookies尚不可用?

2 个答案:

答案 0 :(得分:1)

你可以使用角度翻译服务。这会自动执行此操作。 链接https://github.com/angular-translate/angular-translate

答案 1 :(得分:0)

在您的情况下,请设置两个状态,并为frach添加tamplateurl '/views/fr/faq.html',为英语添加'/views/en/faq.html'

 $stateProvider
    .state('enFaq', {
      url: "/Faq",
      templateUrl: "/views/en/faq.html"
    })
    .state('frFaq', {
      url: "/Faq",
      templateUrl: "/views/fr/faq.html"
    })
});

根据您的情况,您可以隐藏一个州 喜欢

 <a ui-sref="frFaq" ng-if="location=='fr'">Faq</a>
 <a ui-sref="enFaq" ng-if="location='en'">Faq</a>