CanLoad Guard不允许使用“ /”路由

时间:2019-02-13 04:47:45

标签: angular canactivate

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

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

但是CanLoad似乎有一个局限性,即它不适用于'/',因为发生的事情是该应用陷入了无限循环。当canLoad被拒绝时,即使您将重定向到“ / login”设置为“ false”,CanLoad也会自动将其重定向为“ /”。

我需要的临时解决方案是不使用''root作为路由,而将其称为'/ home'之类的东西,但这会在应用程序的每条路由前添加/ home/。

CanActivate Guard可以在此设置下使用,但是我当然不能从延迟加载中受益,因为无论如何,即使用户只会卡在/上,完整的应用程序(home /)都将被加载。登录屏幕。

相关:

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

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

1 个答案:

答案 0 :(得分:0)

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