Можно деактивировать пожары только один раз и не всегда

Мой CanDeactivateGuard не всегда срабатывает, когда я нажимаю кнопку возврата браузера. Я не могу найти причину. Не могли бы вы взглянуть на мой код и дать мне совет?

охрана:

@Injectable()
export class CanDeactivateGuard implements CanDeactivate<SignupComponent> {
  canDeactivate(component: SignupComponent): boolean {
    if (!component.canDeactivate()) {
      if (confirm("You have unsaved changes! If you leave, your changes will be lost.")) {
        return true;
      } else {
        return false;
      }
    }
    return true;
  }
}

Метод в RegistrationComponent:

canDeactivate() {
    if (this.activeStep == 'step1' || this.activeStep == 'step5') {
      return true;
    } else {
      return false;
    }
  }

Маршрутизация:

...
  {
    path: 'signup/:nickname',
    component: SignupComponent
  },
  {
    path: 'signup',
    component: SignupComponent,
    canDeactivate: [CanDeactivateGuard]
  },
...

1 ответ

Добавьте его и к другим маршрутам

  {
    path: 'signup/:nickname',
    component: SignupComponent
    canDeactivate: [CanDeactivateGuard]
  },
  {
    path: 'signup',
    component: SignupComponent,
    canDeactivate: [CanDeactivateGuard]
  },
Другие вопросы по тегам