2016-07-15 74 views
0

我试图确定的路线是它被激活之前,所以我可以缓存它和重定向用户返回到该路由他们登录后。角2 RC4路由器得到预定航线之前激活

在旧的测试版路由器我能够在激活挂钩中调用ComponentInstruction.routeName,但在新的canActivate()后卫中,我没有看到在激活前访问预期路线的方法。

当用户在我的应用程序中点击navagtion按钮时,我可以将共享服务中的预期路线存储起来,但是当他们在地址栏中输入URL时怎么办?

回答

2

从角路由器源文件:

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

ActivatedRouteSnapshot对象(路线)具有url属性 - 另一种类型的阵列中,在第一对象属性path您的电流路径。

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

简单地传递这些参数你canDeactivate法)

+0

与canActivate方法 –

+0

是的,当然,这两种方法的作品也适用 –