如何为AngularJS路由添加动态前缀
How to add dynamic prefix to AngularJS routes
什么是本地化的URL:
-
http://example.com/eng/somepath
-
http://example.com/ger/somepath
让我们假装我们总是知道用户语言。
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'
})
我认为最好的选择是将url设置为类似http://mysite.com/somepath?lang=en
的内容,然后您可以在任何需要的地方直接从url读取lang
。
相关文章:
- 正在添加动态第二类Jquery
- 如何在javascript而不是jquery中添加动态列表
- 为图例添加动态色彩标签
- 如何在谷歌表单中添加动态字段
- 如何添加动态Id's并在运行时提取它们
- 在 JavaScript 中添加动态文本
- 如何添加动态表单元素但保留其值(JS)
- 使用AngularJs在自定义TinyMCE编辑器中添加动态数据
- 如何使用JavaScript添加动态HTML内容(DIV)
- javascript初学者:在javascript中添加动态样式
- 如何使用Javascript在html源中添加动态数据
- 向Uploadify添加动态字段
- 如何在 Vue.js 中添加动态组件/部件
- 锚导航与坚持到顶部菜单..需要向锚点添加动态偏移量
- Javascript:添加动态方法
- 向角度对象添加动态功能
- 添加动态文本框时更新动态高度
- JavaScript 运行时错误:无法在 Windows 8 应用中添加动态内容
- 添加动态点击事件
- 添加动态字段以创建特定的 JSON 格式