javascript - 可以预加载使用 canLoad 的模块吗?
问题描述
这个问题有这个例子:
{
path: 'admin',
loadChildren:
'app/admin/admin.module#AdminModule',
canLoad: [AuthGuard]
}
AdminModule 仍然可以在 canLoad 保护到位的情况下预加载/预取吗?
如果不是,则将属性放在?AuthGuard
canActivate
内的所有路线上的唯一其他选择AdminModule
解决方案
这实际上没有任何意义,因为预加载会在应用程序启动时急切发生。那么您如何AuthGuard
知道用户是谁或他们有权访问什么。它会在任何服务有机会恢复之前的会话或与任何东西通信之前发生。
canLoad
和canActivate
是异步操作,如果必须等待才能预加载,预加载是无效的。
问自己这个问题。我是否需要应用程序快速更改到管理部分的路由。如果您回答是,则使用canActivate
并预加载,但如果延迟很好并且您想节省带宽,则使用canLoad
不预加载。
尽管如此,根据文档不支持它。
PreloadAllModules 策略不加载受 CanLoad 防护保护的特征区域。这是设计使然。
推荐阅读
- mysql - 是否可以获得我们正在删除的特定列值
- angular - Angular 应用程序中 Font Awesome 字体的 CORS 错误
- node.js - 试图填充每个聊天室的每个所有者
- mysql - 将 XAMPP SQL 数据库添加到 PhpStorm 会出现被拒绝的详细信息错误
- sql - 在 postgreSQL 中一天超过 24 小时
- sql - 拆分 CLOB 数据类型而不转换为 varchar2
- php - 如何过滤while PHP的结果?
- javascript - 单击时设置活动选项卡,并删除前一个
- javascript - 如何获取`e.target`的`next`元素?
- c++ - 到处使用共享指针有什么陷阱?