Angular 路由级联重定向(用户被重定向后跟随第二次重定向)
Angular Routing cascade redirects (follow 2nd redirect once user has been redirected)
使用 angular 路由器时遇到问题(可能只是出于理解原因)。
简而言之,当我调用不允许加载的路由(由守卫保护)时,我会被重定向,但如果重定向到达配置了第二次重定向的某个地方,则不会遵循此重定向
让我们看下面的例子:
const routes: Routes = [
{
path: '',
redirectTo: 'account',
pathMatch: 'full'
},
{
path: 'account',
loadChildren: './modules/account/account.module#AccountModule',
canLoad: [CanLoadAccountGuard]
},
{
path: 'dashboard',
loadChildren: './modules/dash-board/dash-board.module#DashBoardModule',
canLoad: [CanLoadDashBoardGuard]
},
{
path: '**',
redirectTo: ''
}
];
如果我未通过身份验证,则不允许我访问 /dasboard
路由并立即重定向到“”(/)。
在“”(/) 的配置中配置了 redirectTo: 'account'
但未应用...浏览器保持在“”(/)。
但是如果我最初调用 /
路由,重定向会按预期工作。
知道我在做什么 wrong/missunderstand 吗?
通过将配置更改为下面的示例来解决它。
[
{
path: 'account',
loadChildren: './modules/account/account.module#AccountModule'
},
{
path: '',
canActivateChild: [IsAuthenticatedGuard],
children: [
{
path: '',
redirectTo: 'dashboard',
pathMatch: 'full'
},
{
path: 'dashboard',
loadChildren: './modules/dash-board/dash-board.module#DashBoardModule'
}
]
},
{
path: '**',
redirectTo: ''
}
]
使用 angular 路由器时遇到问题(可能只是出于理解原因)。
简而言之,当我调用不允许加载的路由(由守卫保护)时,我会被重定向,但如果重定向到达配置了第二次重定向的某个地方,则不会遵循此重定向
让我们看下面的例子:
const routes: Routes = [
{
path: '',
redirectTo: 'account',
pathMatch: 'full'
},
{
path: 'account',
loadChildren: './modules/account/account.module#AccountModule',
canLoad: [CanLoadAccountGuard]
},
{
path: 'dashboard',
loadChildren: './modules/dash-board/dash-board.module#DashBoardModule',
canLoad: [CanLoadDashBoardGuard]
},
{
path: '**',
redirectTo: ''
}
];
如果我未通过身份验证,则不允许我访问 /dasboard
路由并立即重定向到“”(/)。
在“”(/) 的配置中配置了 redirectTo: 'account'
但未应用...浏览器保持在“”(/)。
但是如果我最初调用 /
路由,重定向会按预期工作。
知道我在做什么 wrong/missunderstand 吗?
通过将配置更改为下面的示例来解决它。
[
{
path: 'account',
loadChildren: './modules/account/account.module#AccountModule'
},
{
path: '',
canActivateChild: [IsAuthenticatedGuard],
children: [
{
path: '',
redirectTo: 'dashboard',
pathMatch: 'full'
},
{
path: 'dashboard',
loadChildren: './modules/dash-board/dash-board.module#DashBoardModule'
}
]
},
{
path: '**',
redirectTo: ''
}
]