Я получил эту ошибку, потому что я вызывал router.navigate дважды в быстрой последовательности (1 для добавления queryParams, 1 для добавления фрагмента), поэтому мне пришлось реорганизовать мой код, чтобы вызывать навигацию только один раз.
аюсь перенаправить старые URL-адреса (ссылки в шаблонах электронной почты) с предыдущего сайта на другой маршрут, например так:
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.navigationId
(https://github.com/angular/angular/blob/master/modules/@angular/router/src/router.ts#L652). Я не могу найти информацию оnavigationId
собственность, почему это происходит и как ее решить.
Перенаправления между существующими маршрутами, кажется, работают, но не между этими старыми URL-адресами хеш-меток и существующими маршрутами. Должны ли оба маршрута существовать в маршрутизаторе, чтобы можно было перенаправлять их между собой?
Помощь будет очень ценится.