我怎么能总是像lang = en那样在angular请求中添加查询字符串

时间:2014-12-30 05:30:41

标签: angularjs angular-ui-router angular-translate

我们最近在做I18N,我们有一个菜单来切换语言en,jp和fr之间的语言。 一旦我们切换语言,网址就像下面一样,在网址的末尾有一个查询字符串附加。

http://localhost:3030/loadTests?lang=en

以下是问题,因为我们不会在所有现有链接和href中附加lang参数,如果我们点击网站上的某个链接,则网址将如下:

http://localhost:3030/loadTests/1

querystring lang = en没有附加到url的末尾,我们希望lang = en总是追加到url的末尾,我该如何实现呢?

希望我能清楚地描述我的问题。

提前致谢!

1 个答案:

答案 0 :(得分:7)

您可以使用Angular JS http Interceptors来执行此操作。

    var app = angular.module('myApp', []);

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

             }
         });
     });

编辑:要从网址获取当前查询字符串参数,您可以按照此回答操作。 - > How can I get query string values in JavaScript?

然后在代码中你可以像这样写:

config.url = config.url + '?lang=' + getParameterByName('lang');