角度路由中的CanActivate保护,无需重复“ CanActivate”属性

问题描述

我想在路由中使用canActivate保护,而无需重复

canActivate:[AuthGuard],

如下所示的代码

import { AuthGuard } from 'src/app/core/guards/auth.guard';
 
const routes: Routes = [{
  path: '',data: { title: 'Users' },children: [
    {
          path: 'createuser',canActivate: [AuthGuard],component: UserComponent,data: { title: 'Create User' }
        },{
          path: 'updateuser',component: UpdateUserComponent,data: { title: 'Update User' }
        },]
}];

解决方法

在您的示例中,您可以使用canActivateChild

import { AuthGuard } from 'src/app/core/guards/auth.guard';
 
const routes: Routes = [{
  path: '',data: { title: 'Users' },canActivateChild: [AuthGuard],children: [
    {
          path: 'createuser',component: UserComponent,data: { title: 'Create User' }
        },{
          path: 'updateuser',component: UpdateUserComponent,data: { title: 'Update User' }
        },]
}];

因此该身份验证防护将应用于所有孩子

,

我认为您正在寻找CanActivateChild,它可以让您为所有子路线指定一个后卫

import { AuthGuard } from 'src/app/core/guards/auth.guard';
 
const routes: Routes = [{
  path: '',canActivateChild: [AuthGuard]
  children: [
    {
          path: 'createuser',]
}];

来自:https://angular.io/api/router/CanActivateChild

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...