AngularJS 1.0.7 更改 url

AngularJS 1.0.7 change url

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

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

我该如何实现?

注意:拜托,我知道 ui-路由器。我会评估它,但代码的变化是 quite 大。所以,我想知道 ng-route 的方法。

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

您可以简单地替换 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);

你需要这样的东西:

$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();
        }
    });