1

我是什么让本地化网址如:

假设我们总是知道用户 lang。

angular.module('website', [])
.constant('ROUTES', (function () {
    var lang = 'eng'; // just for example
    return {
        SOME_PATH: '/' + lang  + '/somepath'
  }
})())
.config([..., '$locationProvider', 'ROUTES', function(..., $locationProvider, ROUTES {
    $routeProvider.when(ROUTES.SOME_PATH, {templateUrl: 'pages/some_page.html', controller:     'SomePageController'});
    $locationProvider.html5Mode(true);
}])
.run(['$rootScope', 'ROUTES', function ($rootScope, ROUTES) {
    $rootScope.ROUTES = ROUTES;
}]);

所以,如果我在 html 中添加链接,一切正常:

<a href="{{ROUTES.SOME_PATH}}">Some path</a>

在我按计划单击链接路由工作后。但如果我刷新页面或通过直接链接(“ http://example.com/eng/somepath ”),我无法访问任何页面并看到 404 页面。

4

2 回答 2

2

使用 $routeProvider 映射路线不是更容易吗?

$routeProvider.when('/:langId/:somepath', 
    {
     controller: 'languageHandlingController'
    })
于 2013-07-07T21:39:49.830 回答
0

我认为最好的选择是将网址设置为类似的http://mysite.com/somepath?lang=en内容,然后您可以lang在需要的任何地方直接从网址中读取。

于 2013-07-07T21:32:36.073 回答