是否可以使用$ stateProvider将语言作为参数附加到所有URL?

时间:2016-10-20 16:14:06

标签: angularjs angular-ui-router

我只是在使用$ stateProvider丢失时尝试将该语言添加到url的开头。因此,如果您导航到" / products"它会成为" / pt / products"。

我试图像这样添加一个param默认值:

$stateProvider
    .state('root', {
        url: '/:lan',
        abstract: true,
        template: '<div ui-view=""></div>',
        params: { lan: 'pt' }
    });

但它没有达到预期的效果。怎么做?

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。如果您要将其添加到所有网址:

$httpProvider.interceptors.push(function ($q) {
             return {
                 'request': function (config) {
                     config.url = config.url + '/en/';
                     return config;
                 }

             }
         });
     });

如果您想要特定于路线的重定向:

$urlRouterProvider.when('/route',
{
  redirectTo: function () {
    return "/route/en";
  }
})