如何在同一路由中添加 CanActivate 和 loadChildren

How to add CanActivate and loadChildren in the same route

我想延迟加载我的模块,但同时使用 canActivate 保护它。我试过了:

{ path: 'dashboard/vendor', canActivate: AuthGuard, loadChildren: 'app/module/dashboard/vendor/vendor.module#VendorModule' }

请注意,我没有使用子节点,因为我在 vendor-routing.module 中使用 RouterModule.forChild 定义了供应商路由。

但是没用。有什么建议吗?

您应该使用 canLoad 而不是 canActivate,因此如果不满足条件,它将不会加载您的 LazyModule。

{ path: 'dashboard/vendor', canLoad: [AuthGuard], loadChildren: 'app/module/dashboard/vendor/vendor.module#VendorModule' }