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: ''
    }
]