簡體   English   中英

如何為AngularJS路由添加動態前綴

[英]How to add dynamic prefix to AngularJS routes

我是什么使本地化的URL,如:

假設我們一直都知道用戶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頁面。

用$ routeProvider映射路線會更容易嗎?

$routeProvider.when('/:langId/:somepath', 
    {
     controller: 'languageHandlingController'
    })

我認為最好的選擇是將網址設置為類似http://mysite.com/somepath?lang=en ,然后您就可以在需要的地方直接從網址中直接讀取lang

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM