Показать сообщение отдельно
  #1 (permalink)  
Старый 29.03.2019, 14:52
Интересующийся
Отправить личное сообщение для kotelok Посмотреть профиль Найти все сообщения от kotelok
 
Регистрация: 27.08.2018
Сообщений: 22

CanDeactivate: nextState
Есть компонент.

Для компонента реализован и зарегистрирован гуард "CanDeactivate".

В реализации которого имеется метод:
canDeactivate(component: IComponentDeactivate, currentRoute: ActivatedRouteSnapshot,
        nextState?: RouterStateSnapshot): Observable<boolean> {

В самом компоненте есть код навигации на следующую страницу:
this.router.navigate(['../' + this.nextUrl], { relativeTo: this.route });

Код навигации отрабатывает корректно. Т.е. браузер переходит на указанный урл, корректно обновляет адресную строку, отрисовывает страницу, подгрузив для неё компонент.

Метод 'canDeactivate' тоже вызывается. Однако, в его входных параметрах 'currentRoute' и 'nextState' содержится один и тот же адрес - адрес той страницы с которой происходит навигация.

Я предполагал, что 'nextState' будет содержать адрес страницы НА которую производится навигация, а тут такая незадача.

Есть ли какая-то возможность определить цель перехода внутри 'canDeactivate'? На этом строится часть логики.

P.S.: Angular 7.3.6.
Ответить с цитированием