Маршрутизатор 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'];