angular - 如何将参数传递给canActivate的构造函数?

标签 angular angular5

我有以下路线路径:

{
    path: 'teacher',
    component: DashboardTeacher, canActivate: [AccessGuardTeacher('Teacher')]
}

如您所见,我尝试在类AccessGuardTeacher中传递参数'Teacher':
export class AccessGuardTeacher implements CanActivate {

  constructor(private role: string) {
  }
}

怎么做对吗?

最佳答案

您的路线应配置为:

{ 
   path: 'teacher', 
   component: DashboardTeacherComponent, 
   canActivate: [AccessGuardTeacher], 
   data: { 
            role: 'teacher'
         } 
}

在您的CanActivate Guard中获取路线数据
export class AccessGuardTeacher implements CanActivate {

     constructor() {
     }

    canActivate(route: ActivatedRouteSnapshot): boolean {

        const role = route.data.role;
        return true; //based on your condition
    }
}

关于angular - 如何将参数传递给canActivate的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50624086/

相关文章:

angular4 ObjectUnsubscribedError

angular - 如何使用 NgModule 导出 const

angular - 升级 Angular 和项目后找不到编译器 ngcc 模块

javascript - Angular typescript如何将字符串转换为html对象并将其传递给变量

javascript - Angular 5 删除特定的 DOM 元素

http - 角度 5 HTTPClient/HTTPHeader 'Preflight response is not successful'

angular - 在哪里声明 Angular catch all (Not found) 路由

具有多个数据的 Angular 5 共享服务

Angular 2 Kendo 网格不支持 odata v4

angular - 如何动态地将组件添加到服务中的另一个组件