This question有这个例子:
{
path: 'admin',
loadChildren:
'app/admin/admin.module#AdminModule',
canLoad: [AuthGuard]
}
AdminModule 是否仍可以在 canLoad 守卫就位的情况下预加载/预取?
如果不是,将 AuthGuard
canActivate
属性放在 AdminModule
中的所有路由上是唯一的其他选择吗?
最佳答案
其实没有什么意义,因为预加载会在应用启动的时候急切的发生。那么您的 AuthGuard
如何知道用户是谁或他们有权访问什么。它会在任何服务有机会恢复之前的 session 或与任何东西通信之前发生。
canLoad
和canActivate
是异步操作,如果要等待 才能预加载,预加载是无效的。
问问自己这个问题。我是否需要应用程序快速更改到 admin 部分的路由?如果您回答是,则使用 canActivate
并预加载,但如果延迟很好并且您想节省带宽,则使用不带预加载的 canLoad
。
综上所述,根据文档,不支持。
The PreloadAllModules strategy does not load feature areas protected by a CanLoad guard. This is by design.
关于javascript - 可以预加载使用 canLoad 的模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54012377/