изменения маршрута, сделанные внутри веб-сайта и на уровне браузера
Я использую Angulars CanDeactivate для распознавания изменений маршрута. Если у меня есть несохраненные изменения и изменяется маршрут, открывается настраиваемое диалоговое окно подтверждения, чтобы спросить, хочу ли я сохранить до изменения маршрута. Диалог работает, но если я что-то изменю на уровне браузера (например, обновлю страницу), появится внутренний запрос браузера. Но я хочу использовать свой собственный диалог.
@HostListener('window:beforeunload', ['$event'])
canDeactivate(event: Event): Promise<boolean> | boolean {
if (this.unsavedChanges === true) {
if (event) {
event.returnValue = true;
event.preventDefault();
}
return this.dialogService.confirm('Discard changes for Person?');
}
}
У меня есть идея, как решить эту проблему, но сначала мне нужно различать оба случая. Я ценю любую помощь!