Angular 2 RC4 路由器在激活前获取预期路线

Angular 2 RC4 Router get intended route before activated

我试图在激活之前确定该路由是什么,以便我可以缓存它并在用户登录后将其重定向回该路由。

在旧的 beta 路由器中,我能够在激活挂钩中调用 ComponentInstruction.routeName,但在较新的 canActivate() 守卫中,我看不到在激活之前访问预期路由的方法。

当用户在我的应用程序中单击导航按钮时,我可以将预期路线存储在共享服务中,但是当他们在地址栏中输入 URL 时呢?

来自 angular 路由器源文件:

export interface CanDeactivate<T> {
  canDeactivate(component: T,
   route:ActivatedRouteSnapshot,
   state:RouterStateSnapshot): Observable<boolean> | boolean;
}

ActivatedRouteSnapshot 对象(路线)有 url 属性 - 另一种类型的数组,在 属性 path 您当前路径的第一个对象中。

同样在 RouterStateSnapshot 对象(状态)中只有带有当前路径的字符串 属性 url,但带有 / 前缀。

只需将这些参数传递给您的 canDeactivate 方法)