Вопросы

Angular Guard и кнопка возврата браузера: странное взаимодействие

У меня есть домашняя страница и две подстраницы. Я охраняю пользователя, уходящего с подстраницы 1, с помощью Angular guards. Я выполнил рекомендации здесь и добавил логика для отдельной обработки нажатия на ссылку и использования кнопки возврата в браузере. Я воспроизвел базовую логику в stackblitz.

Эта конкретная последовательность не работает:

  1. на главной странице нажмите Comp1
  2. попробуйте уйти, нажав на «Домой», отменить
  3. попробуйте уйти с помощью кнопки возврата (если в редакторе stackblitz, а не в приложении, вам нужно явно ввести history.back () в консоли)

Вы увидите изменение адресной строки, но без диалогового окна подтверждения и фактического изменения страницы.

Он работает нормально, если я использую кнопку «Назад» напрямую, или если в пункте 2 я пытаюсь перейти к Comp2 вместо Home. Похоже, что угловая маршрутизация записывает попытку перехода на главную, даже если она была отменена, а при нажатии кнопки возврата никаких действий не происходит, потому что строка URL-адреса местоположения не изменилась. Это невидимо для пользователя, потому что история браузера выглядит нормально.

Читать:
Пожалуйста, почему этот код печатается с дополнительным n, когда я его запускаю?

Я использую Angular 7. Есть идеи? Это ошибка?

Попробуйте реализовать функцию angular deactivate guard angular.io/api/router/CanDeactivate   —  person Daneel79108    schedule 26.02.2021

Мой код уже делает это   —  person Daneel79108    schedule 01.03.2021

Похожие записи

Как собрать .ipa для React Native?

admin

как заархивировать содержимое папки с помощью аргумента командной строки?

admin

Есть ли способ преобразовать формат данных файла .pb из NCHW в NHWC?

admin

Достигнута квота получателей по электронной почте при многократной отправке одного и того же адреса электронной почты

admin

Java 8 LocalDateTime

admin

Как найти максимальную сумму подмассива, если мне нужно удалить самый большой элемент в подмассиве

admin