我有一个组件,我希望仅在从另一个组件重定向的情况下才允许它访问。
因此,如果我将 url 放在浏览器中,它将不允许我访问它,但是,如果我从另一个像这样的特定组件重定向到它,它将被允许:
this.router.navigate(['/main/myLockedComponent']);
我想添加一个类似于 authGuard 的 canActivate 守卫,如下所示:
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ValidationGuardService implements CanActivate{
constructor() { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
console.log(route);
console.log(state);
return true;
}
}
但是通过打印状态和路由,我找不到我需要的信息,比如这个组件是否从一个角度组件(更好的是从哪个组件)重定向到内部。
编辑:我正在使用角度 11。