1

我有一个 AngularJS1.0.7 网络应用程序。我正在实现多语言 URL,例如 domain.com/es 或 domain.com/en。即我有 www.domain.com/es/about。

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

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

注意:拜托,我知道 ui-router。我会评估它,但是代码的变化是相当大的。所以,我想知道一种使用 ng-route 的方法。

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

4

2 回答 2

1

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

// 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);
于 2015-03-04T07:07:43.193 回答
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();
        }
    });
于 2015-03-04T08:19:03.493 回答