2017-01-30 113 views
5

我試圖舊網址從以前的網站(在電子郵件模板鏈接)重定向至另一條路線:角2:NavigationCancel - 導航ID 2不等於當前的導航標識3

if (route.url.indexOf('/#/') !== -1) { 
    this.router.navigate(['/my-route']); 
} 

但導航被取消的原因如下:

Navigation ID 2 is not equal to the current navigation id 3

看着Angular 2路由器源,這發生在runNavigate方法id !== this.navigationIdhttps://github.com/angular/angular/blob/master/modules/@angular/router/src/router.ts#L652)。我找不到任何關於navigationId屬性的信息,爲什麼會發生這種情況以及如何解決它。

存在的路由之間的重定向似乎有效,但不存在於這些舊的哈希標記URL和現有路由之間。兩個路由都必須存在於路由器中才能夠在它們之間重定向?

幫助將不勝感激。

回答

2

我得到這個錯誤,因爲我在快速連續調用兩次router.navigate(1追加queryParams,1追加一個片段),所以不得不重構我的代碼只調用導航一次。