angular 2のcanActivateガード内でユーザーが開こうとしているルートを取得するにはどうすればよいですか?
たとえば、ルートパラメータが変更されるたびにガードウォッチを作成するにはどうすればよいですか。ルート内のIDの変更?
import { Injectable } from '@angular/core';
import {Observable, Observer, Subject} from "rxjs/Rx";
@Injectable()
export class RightsGuard implements CanActivate {
constructor(
private router: Router,
private route: ActivatedRoute
// private state: RouterStateSnapshot
) { }
canActivate(): Observable<boolean> | boolean {
var targetUrl = ???
// var targetUrl = this.router.url // is showing previous url?
return true;
}
}
Angular 2で推奨される回答は、DI エラーをスローするため、使用してガードで現在のルートを取得しprivate state: RouterStateSnapshot
、this.route.url
機能しません。
Error: Uncaught (in promise): Error: DI Error
Error: DI Error