[英]How to add dynamic prefix to AngularJS routes
我是什么使本地化的URL,如:
http://example.com/ eng / somepath
http://example.com/ ger / somepath
假設我們一直都知道用戶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.