有没有办法在authguard中使用相对路径模式重定向?
我试过了
@Injectable() export class ServerAuthGuard implements CanActivate { constructor(private _router: Router,private _route: ActivatedRoute) { } canActivate(route: ActivatedRouteSnapshot): boolean { this._router.navigate(['../../servers/'],{relativeTo: this._route}); return false; } }
应该从/ projects / 2 / servers / 71重定向到/ projects / 2 / servers /但是它总是将它重定向到/ servers(当我在组件中执行相同操作时它工作正常).
解决方法
relativeTo也应该接受ActivatedRouteSnapshot,看起来这可能被忽略了,同时这里有一个解决方法:
canActivate( next: ActivatedRouteSnapshot,state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean { // if(...) { const segments = state.url.split('/'); segments.pop(); segments.shift(); this.router.navigate(segments); // } else { // return true; // } }