Чтобы иметь возможность закрыть мой (динамически добавленный) модал с помощью кнопки назад браузера, я добавляю хеш #modal к моему URL, как только открывается модал.После нажатия кнопки возврата в браузере я слушаю всплывающее состояние, проверяю, открыт ли модал, и удаляю его.Когда модальное окно закрывается без использования кнопки назад браузера, я выполняю history.back () и удаляю модальное окно.Побочным эффектом является то, что в истории остался прямой путь, который является хешем #modal.
Есть ли способ избавиться от этой прямой истории?
Iпосле перехода назад попытался перейти по тому же URL-адресу, но это, похоже, ничего не дает.Я также использую queryParams в своем приложении, но я не думаю, что это влияет на что-либо здесь.
При открытии модального режима, я добавляю #modal:
this.router.navigate([], {fragment: 'modal', queryParamsHandling: 'merge'})
В состоянии pop:
location.onPopState( () => {
if(this.modalCount > 0){
this.removeAllModals();
const routerSub = this.router.events.subscribe(event => {
if(event instanceof NavigationEnd) {
this.router.navigate([], {replaceUrl:true, queryParamsHandling: 'merge';
routerSub.unsubscribe();
}
})
}
})