在我的应用程序中,我使用角度UI路由器.
我有当地人(英语和希伯来语)我的基本语言是英语.
这就是为什么我想要的语言是英语不要将参数添加到网址
例如:
http://example.com/Home希伯来语 - > http://example.com/he/
关于我们English - > http://example.com/about
http://example.com/he/about这可能吗 ?
这是我目前的代码
$stateProvider
.state('/', {
url: "/",
templateUrl: "Assets/app/templates/home.html",
controller: 'homeController'
})
.state('activity', {
url: "/activity",
templateUrl: "Assets/app/templates/gallery.html",
controller: 'galleryController'
})
.state('page', {
url: '/:pagename',
templateUrl: "Assets/app/templates/page.html",
controller: 'pageController'
});
Run Code Online (Sandbox Code Playgroud) 我正在使用angularjs和UI-Router.我想配置指定所选语言的路由.虽然这部分路线应该是可选的.
我有以下状态:
{
state: 'app',
config: {
abstract: true,
url: '/{lang:(?:de|en)}',
template: '<ui-view/>'
}
}
{
state: 'app.mainview',
config: {
url: '/mainview',
templateUrl: 'app/mainview/mainview.html',
controller: 'MainviewController',
controllerAs: 'vm',
title: 'Main View',
settings: {
pos: 1,
displayName: 'Mainview',
icon: 'code-array'
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在它唯一可以导航到主视图
example.com/en/mainview
Run Code Online (Sandbox Code Playgroud)
虽然我想配置ui-router以使以下所有路由都有效:
example.com/mainview
example.com/en/mainview
example.com/de/mainview
Run Code Online (Sandbox Code Playgroud)
我可以在开头设置一个带有可选语言参数的路由而不使用双斜杠吗?如果不是,您建议使用哪些替代方案?
由于angular angularjs路由有可选的参数值吗?
和AngularJS:使用带有可选参数的URL进行路由带有?参数名称的
问号应该使其成为可选项.它没有帮助我.
var app = angular.module('app', ['ui.router','ngRoute']);
app.config(function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/a');
$stateProvider.state('a', {
url: '/a',
templateUrl: 'views/a.html'
}).state('b', {
url: '/b/:code?/:d?',
templateUrl : 'views/b.html'
})
});
Run Code Online (Sandbox Code Playgroud)
这个网址http:// localhost:xx/kk /#/ b/1/2对我来说很好.但是http:// localhost:xx/kk /#/ b(没有任何参数)和http:// localhost:xx/kk /#/ b/1对我不起作用......
你可以看到我正在使用$stateProviderui-router.我不想切换到$urlRouteProvider