2017-04-12 10 views
2

ルートガードに特定のURLのルートのみを許可する方法はありますか?たとえば、 '/ url2'には他のURLからではなく/ 'url1'からのみアクセスするか、アドレスバーに直接 'example.com/url2'を入力します。angular 2 - 特定のURLからのルートのみを許可するようにルートガードを設定するにはどうすればよいですか?

私が考えることができる唯一の解決策は、ステータスを共有するためにサービスを使用することですが、私はルートガードの中でソースURLにアクセスできるかどうかを考えているので、ルートガードで可能にしようとしています。私が直面している唯一の問題は、私がルートガードからのソースURLをどこに見つけるか分からないことです。その後、

export class AuthGuard implements CanActivate { 

    constructor(private router: Router) { } 

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { 
     this.router.url //<-- should be current path, whereas the route: ActivatedRouteSnapshot object should be the requested route 
     ... 
    } 

はどんなチェックを行うと:

事前のおかげで、

答えて

3

私はあなたがCanActivateガードのコンストラクタでRouterを注入し、router.urlを使用することにより、ガードで、現在のルーターパスにアクセスすることができると信じてcanActivateメソッドからbooleanまたはObservable<boolean>を返します。

関連する問題