У меня проблема с маршрутизацией и CanDeactivateGuard в моем приложении.
У меня есть кнопка «Назад», которая должна перенаправить пользователя на указанную страницу. У меня есть CanDeactivateGuard, который должен показывать всплывающее окно подтверждения, что пользователь действительно хочет покинуть страницу.
Шаги:
1) Пользователь нажимает кнопку «Назад» на странице
2) CanDeactivateGuard работает и показывает всплывающее окно подтверждения
3) Пользователь нажимает «Нет» во всплывающем окне подтверждения.
4) Пользователь нажимает кнопку «Назад» в браузере
5) Ничего не происходит (но я ожидаю увидеть всплывающее окно подтверждения снова). Есть какая-то «магия»: если пользователи нажимают «Назад» в браузере 3-5 раз - всплывающее окно будет показано снова.
Метод кнопки «Назад»:
onBackClick() {
this.router.navigate(['/some route']);
}
CanDeactivateGuard:
canDeactivate(..some params): boolean | Observable<boolean> | Promise<boolean> {
return confirm('Test message');
}