【问题标题】:CanLoad guard doesn't allow for '/' routeCanLoad 守卫不允许使用“/”路由
【发布时间】:2019-04-19 02:26:41
【问题描述】:

我的计划是建立一个项目,其中“/”上的主网站非常庞大,只是在实际登录后才延迟加载。

const routes: Routes = [
  { path: '', canLoad: [AuthGuard], loadChildren: './home/home.module#HomeModule' },
  { path: 'login', component: LoginComponent },
  { path: '**', redirectTo: '/'  },
];

但是 CanLoad 似乎有这个限制,它不适用于“/”,因为发生的情况是应用程序陷入无限循环。当 canLoad 被拒绝时,CanLoad 具有内置的自动重定向到 '/',即使您在“false”时重定向到 '/login'。

我的临时解决方案是不使用 '' root 作为路由,而是将其称为 '/home' 或其他名称,但这会在应用程序的每个路由前面添加 /home/。

CanActivate 守卫在这种设置下工作,但是我当然没有得到延迟加载的好处,因为无论如何都会加载完整的应用程序(home/),即使用户只会卡在 /登录屏幕。

相关:

https://github.com/angular/angular/issues/16197

https://github.com/angular/angular/issues/24715

【问题讨论】:

    标签: angular canactivate


    【解决方案1】:

    编辑:将“登录”路线移动到数组中的第一个位置。

    【讨论】:

    • “指明路线名称”是什么意思,我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 2021-11-30
    • 2018-12-04
    • 2021-02-03
    • 2021-01-29
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多