0

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

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

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

4

1 回答 1

2

从角度路由器源文件:

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

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

对象(状态)内部也只有带有当前路径的RouterStateSnapshot字符串属性,但上面有前缀。url/

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

于 2016-07-15T14:56:19.163 回答