Angular 2 RC4路由器在激活之前获得预期路由

时间:2016-07-15 09:24:03

标签: angular angular2-routing angular2-router3

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

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

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

1 个答案:

答案 0 :(得分:2)

来自角度路由器源文件:

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

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

同样在RouterStateSnapshot对象(状态)内部只有字符串属性url和当前路径,但前缀为/

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