【发布时间】:2021-08-12 12:14:23
【问题描述】:
任何人都可以建议在单个子页面上禁用 authguard(应用于父级)的最佳方法。
ROUTES:Routes = [
{
path: '',
component: AdminComponent,
children: [
{
path: '',
pathMatch: 'full',
data: { title: 'Home' },
loadChildren: 'src/app/admin/dashboard/modules/dashboardRouteModule#DashboardRouteModule',
},
{
path: 'dashboard',
redirectTo: ''
},
{
path : 'blog',
data: { title: 'Blog', breadcrumb: 'Blog' },
loadChildren: 'src/app/admin/blog/modules/blogRouteModule#BlogRouteModule'
},
{
path: '**',
component: NotFoundComponent
}],
canActivate: [ AuthGuard ]}];
博客路由模块
ROUTES:Routes = [
{
path: '',
component: BlogComponent,
resolve: {
routeValues: BlogCreateResolve
},
},
{
path: ':id',
resolve: {
routeValues: BlogEditResolve
},
runGuardsAndResolvers: 'always',
children: [
{
path: '',
component: BlogEditComponent,
canDeactivate: [CanDeactivateGuard],
},
{
path: 'list',
data: { title: 'BlogList', breadcrumb: 'List' },
component: BlogListComponent,
resolve: {
list: BlogListResolve
}
}]}]
目前,所有页面都受到限制,需要登录,但我想禁用 'list' 路由的 authguard,以便无需登录即可查看页面。
谢谢
【问题讨论】:
-
我之前想出并实施的一种方法是禁用父级中的防护并将其设置在每个子级上。
-
这将是相当困难的,因为有相当多的模块和路线。
标签: angular angular-routing angular-router angular-router-guards auth-guard