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();
}
});
我有一个 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();
}
});