【问题标题】:CanActivate guard in angular routing without repeating "CanActivate " property角度路由中的 CanActivate 防护,无需重复“CanActivate”属性
【发布时间】:2020-12-28 13:46:12
【问题描述】:

我想在路由中使用 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',
          canActivate: [AuthGuard],
          component: UpdateUserComponent,
          data: { title: 'Update User' }
        },
  ]
}];

【问题讨论】:

标签: angular angular-routing angular-router-guards angular-guards


【解决方案1】:

在您的示例中,您可以使用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' }
        },
  ]
}];

所以这个 auth 守卫将应用于所有孩子

【讨论】:

  • 我想在主路径中也使用 canActivate "/Users"
【解决方案2】:

我认为您正在寻找 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' }
        },
  ]
}];

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

【讨论】:

  • 我想在主路径中也使用 canActivate "/Users"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2019-12-30
  • 1970-01-01
  • 2021-08-28
相关资源
最近更新 更多