我正在尝试确定路由在激活之前是什么,因此我可以将其缓存并在用户登录后将用户重定向回该路由。
在旧的beta路由器中,我能够在激活挂钩中调用ComponentInstruction.routeName
,但在较新的canActivate()
防护中,我没有看到在激活之前访问预期路由的方法。
当用户点击我的应用中的导航按钮时,我可以将预期路线存储在共享服务中,但是当他们在地址栏中输入网址时呢?
答案 0 :(得分:2)
来自角度路由器源文件:
export interface CanDeactivate<T> {
canDeactivate(component: T,
route:ActivatedRouteSnapshot,
state:RouterStateSnapshot): Observable<boolean> | boolean;
}
ActivatedRouteSnapshot
object(route)具有url
属性 - 另一种类型的数组,属性path
中的第一个对象是当前路径。
同样在RouterStateSnapshot
对象(状态)内部只有字符串属性url
和当前路径,但前缀为/
。
只需将这些参数传递给你的canDeactivate方法)