如何通过在 index.html 之后传递查询参数来转换到 ui-路由器状态?
How can I transition to a ui-router state by passing a query parameter after index.html?
如果我去网页www.abc.com/index.html?state=register
有什么方法可以让 ui-router 直接进入状态:
$state.transitionTo("auth.content", { content: "register" })
请注意,如果用户输入 www.abc.com,那么我希望他们转到设置为 / 状态的普通页面。
谢谢
我会说,您的 SPA(单页应用程序)必须始终首先到达 index.html
(与您的上一个问题相关)。其余的由 angular、UI-Router 完成 - 但所有这些都将并且必须从 index.html
开始
我们可以使用 UI-Router
.otherwise()
或
.when()
$urlRouterProvider
的设置。此处描述了实现该目标的方法:
Angular UI-Router $urlRouterProvider .when not working *anymore*
所以基本上我们可以使用.when()
var whenConfig = ['$urlRouterProvider', function($urlRouterProvider) {
$urlRouterProvider
.when('/app/list', ['$state', 'myService', function ($state, myService) {
$state.go('app.list.detail', {id: myService.Params.id});
}])
.otherwise('/auth/content');
}];
...
app.config(whenConfig)
但是 2.0.13 版本有一些问题,解决方法如下:
Angular UI-Router $urlRouterProvider .when not working when I click
哪里显示我们必须对 .when()
使用一些修复,例如:
var onChangeConfig = ['$rootScope', '$state',
function ($rootScope, $state) {
$rootScope.$on('$stateChangeStart', function (event, toState) {
if (toState.name === "app.list") {
event.preventDefault();
$state.go('app.list.detail', {id: 2});
}
});
}]
如果我去网页www.abc.com/index.html?state=register
有什么方法可以让 ui-router 直接进入状态:
$state.transitionTo("auth.content", { content: "register" })
请注意,如果用户输入 www.abc.com,那么我希望他们转到设置为 / 状态的普通页面。
谢谢
我会说,您的 SPA(单页应用程序)必须始终首先到达 index.html
(与您的上一个问题相关)。其余的由 angular、UI-Router 完成 - 但所有这些都将并且必须从 index.html
我们可以使用 UI-Router
.otherwise()
或.when()
$urlRouterProvider
的设置。此处描述了实现该目标的方法:
Angular UI-Router $urlRouterProvider .when not working *anymore*
所以基本上我们可以使用.when()
var whenConfig = ['$urlRouterProvider', function($urlRouterProvider) {
$urlRouterProvider
.when('/app/list', ['$state', 'myService', function ($state, myService) {
$state.go('app.list.detail', {id: myService.Params.id});
}])
.otherwise('/auth/content');
}];
...
app.config(whenConfig)
但是 2.0.13 版本有一些问题,解决方法如下:
Angular UI-Router $urlRouterProvider .when not working when I click
哪里显示我们必须对 .when()
使用一些修复,例如:
var onChangeConfig = ['$rootScope', '$state',
function ($rootScope, $state) {
$rootScope.$on('$stateChangeStart', function (event, toState) {
if (toState.name === "app.list") {
event.preventDefault();
$state.go('app.list.detail', {id: 2});
}
});
}]