Маршрутизатор Angular 2 отправляет данные с распознавателем не работают

Мои коды такие, но не работают. Я хочу проверить информацию о пользователе перед загрузкой маршрута.

Я использую @angular/router:3.4.2

Класс резольвера:

@Injectable()
export class UserRoleResolver implements Resolve<any> {

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any {
    let user:any = {};
    user.role =  'MEMBER';
    return user;
  }
}

маршрутизатор:

export const APP_ROUTES: Routes = [
  {path: '', component: PublicComponent, children: PUBLIC_ROUTES},
  {
    path: '',
    component: SecureComponent,
    resolve: {userRole: UserRoleResolver},
    canActivate: [AuthGuard],
    children: SECURE_ROUTES
  }
];

Безопасный компонент:

export class SecureComponent implements OnInit {
  userRole:any;
  role:string = 'MEMBER';
  constructor(private userService: UserService,private router:Router) {
  }

  ngOnInit() {

    this.role = 'MEMBER';
    console.log('Role',this.userRole);

    if (!this.userService.isLoggedIn()) {
      this.router.navigateByUrl('/login');
    }
  }
}

1 ответ

Я решаю мою проблему. Это в безопасном компоненте:

я добавить private route: ActivatedRoute в конструкторе

И позвонить в ngOnInıt()

this.userRole = this.route.snapshot.data['userRole'];
Другие вопросы по тегам