Как передать параметры конструктору canActivate? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть следующий маршрут:

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

Как вы можете видеть, я пытался передать параметр 'Учитель' в классе AccessGuardTeacher:

export class AccessGuardTeacher implements CanActivate {

  constructor(private role: string) {
  }
}

Как это сделатьправо?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018
try this way:

{
    path: 'teacher',
    component: DashboardTeacher, canActivate: [AccessGuardTeacher],
    data: {type: ['Teacher']}
}

export class AccessGuardTeacher implements CanActivate {

  constructor(private role: string) {
  }
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

    let type = route.data["type"] as Array<string>;

  }
}
0 голосов
/ 31 мая 2018

Ваш маршрут должен быть настроен следующим образом:

{ 
   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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...