使用Angular2,如何在登录重定向之前重定向到以前的url

前端之家收集整理的这篇文章主要介绍了使用Angular2,如何在登录重定向之前重定向到以前的url前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用Angular2创建单个页面应用程序,我拦截未经身份验证的用户访问自定义RouterOutlet中的非公用路由,并将其重定向登录视图.成功登录后,我想将用户重定向到原来请求的视图,而不是默认视图.

我注意到路由器有一个导航到最后一个成功路由的renavigate()函数,但最后一个成功的路由是/ auth / login,而不是最初请求的URL.

基本上:如何访问或确定先前请求的URL?

我真的不想诉诸传递查询字符串参数,除非我真的要.理想情况下,访问历史记录集作为路由器组件的一部分是很好的,类似于backbone.history!

>使用Auth Guard(实现 CanActivate)来防止未经身份验证的用户.参见 official documentation和例子 this blog.
>在守护者中使用 RouterStateSnapshot来捕获所请求的URL.
canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot) 
{
    // keep the attempted URL for redirecting
    this._loginService.redirectUrl = state.url;
}

>使用Router(例如在login.component.ts中),成功验证后重定向到该URL.例如. this._router.navigateByUrl(的redirectUrl);

附: @MichaelOryl和@Vitali的建议将会起作用,但是我的方式更符合Angular2的最终版本.

原文链接:https://www.f2er.com/angularjs/142747.html

猜你在找的Angularjs相关文章