2016-07-15 70 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

是的,當然,這兩種方法的作品也適用 –