изменения маршрута, сделанные внутри веб-сайта и на уровне браузера

Я использую 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?');
    }
  }

У меня есть идея, как решить эту проблему, но сначала мне нужно различать оба случая. Я ценю любую помощь!

0 ответов

Другие вопросы по тегам