1

AngularJS1.0.7 Web アプリケーションがあります。domain.com/es や domain.com/en などの多言語 URL を実装しています。つまり、私は 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 に答える