我试图在激活之前确定路由是什么,以便我可以缓存它并在用户登录后将其重定向回该路由。
在旧的 beta 路由器中,我可以调用ComponentInstruction.routeName
激活钩子,但在较新的canActivate()
防护中,我看不到在激活之前访问预期路由的方法。
当用户单击我的应用程序中的导航按钮时,我可以将预期的路线存储在共享服务中,但是当他们在地址栏中输入 URL 时呢?
我试图在激活之前确定路由是什么,以便我可以缓存它并在用户登录后将其重定向回该路由。
在旧的 beta 路由器中,我可以调用ComponentInstruction.routeName
激活钩子,但在较新的canActivate()
防护中,我看不到在激活之前访问预期路由的方法。
当用户单击我的应用程序中的导航按钮时,我可以将预期的路线存储在共享服务中,但是当他们在地址栏中输入 URL 时呢?
从角度路由器源文件:
export interface CanDeactivate<T> {
canDeactivate(component: T,
route:ActivatedRouteSnapshot,
state:RouterStateSnapshot): Observable<boolean> | boolean;
}
ActivatedRouteSnapshot
对象(路线)具有url
属性 - 另一种类型的数组,在path
您当前路径的属性中的第一个对象中。
对象(状态)内部也只有带有当前路径的RouterStateSnapshot
字符串属性,但上面有前缀。url
/
只需将这些参数传递给您的 canDeactivate 方法)