如何在angular2中获取上一个路由,因此经过一些处理后导航回到上一个url

时间:2017-10-13 09:18:40

标签: angular angular2-routing

我有一个愿望清单选项的页面,现在如果用户没有登录并单击愿望清单按钮,则用户被重定向登录页面,但在用户登录成功后我想将用户带到用户点击心愿单的上一个路由状态按钮??

我尝试使用像RoutesRecognized这样的路由器事件,但是如果我第二次访问登录页面时这不会被激活。任何建议都不过请帮助。

我甚至使用了路由器事件的pairwise()方法,但是这也是第二次没有第一​​次触发,也就是说如果我回到第1页并重新导航到page2,这个方法会激活。它只是在第1页的第一次访问时没有被激发 - >第2页

2 个答案:

答案 0 :(得分:6)

要实现最可靠的方式返回Angular中的上一个视图,您必须:

  •   

    从'@ angular / common;

    导入{Location}
  • 在组件构造函数上注入位置:

      

    构造(       private _location:位置   ){}

  • 对所需函数调用back()方法:

      

    public goBack(){       this._location.back();   }

答案 1 :(得分:1)

您可以使用angulars RouterStateSnapshot https://angular.io/api/router/RouterStateSnapshot

import { RouterStateSnapshot } from '@angular/router';

constructor(state: RouterStateSnapshot) { }

this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } 
相关问题