我试图在auth.gurd中获取角度为6的当前网址(网址不是参数。),目的是按照角色保护用户的可访问性。
console.log(this.router.url);
我只是在canActivate()
功能的auth.gurd中执行此操作。
这里的问题是。我收到一个旧网址。
例如我现在在/ admin / dashboard,然后它将打印/,如果我单击/ admin / orders,则它将打印/ admin / dashboard。
我尝试了所有其他方式,例如快照和其他解决方案。
constructor(private api: ApiHttpService, private router: Router,private route:ActivatedRoute) {
}
canActivate():boolean {
console.log(this.router.url);
if(this.api.loggedIn()) {
return true;
} else {
this.router.navigate([''])
return false
}
}
谢谢
答案 0 :(得分:3)
您可以在authguard中使用此请求网址:
@Injectable()
export class HasPermissionService implements CanActivate {
private permissions = [];
constructor(private _core: CoreService) {
this.permissions = this._core.getPermission();
}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<boolean>|Promise<boolean>|boolean {
//check here
}
}
在canActivate()中传递ActivatedRouteSnapshot和RouterStateSnapshot作为参数,它将为您提供请求的URL。
您可以在此处获得更多信息:CanActivate