AngularJS 1.0.7更改网址

时间:2015-03-04 06:59:15

标签: angularjs ngroute angularjs-ng-route

我有一个AngularJS1.0.7 Web应用程序。我正在实施domain.com/es或domain.com/en等多语言网址。我有www.domain.com/es/about。

另一方面,我在导航栏中有一个选择组合框以更改语言。因此,当用户更改语言时,网址部分应该更改。

我应该如何实现这一目标?

注意:请知道ui-router。我会对它进行评估,但代码的变化非常大。所以,我想知道一种使用ng-route的方法。

注2:我也知道我的角度版本是旧的。在后来的AngularJs版本中,我知道有$ route.updateParams({language:newValue});但是,它在我的版本中不可用。

2 个答案:

答案 0 :(得分:1)

您可以简单地替换网址的语言部分(始终在开头)并设置新路径:

// Read current path, e.g. /es/about
var path = $location.path();

// Replace language path
var newLang = 'en';
var newPath = path.replace(/^\/.*?\//, '/' + newLang + '/');

// Set new path, e.g. /en/about
$location.path(newPath);

答案 1 :(得分:0)

你需要这样的东西:

$scope.$watch('language', function (newValue, oldValue) {
        if (newValue !== oldValue) {
            var path = $location.path();
            path = path.replace('/'+oldValue+'/', '/'+newValue+'/');
            console.log(path);
            $location.path(path);
            $route.reload();
        }
    });