Как узнать что редирект прошел в routerLink Angular 4?

Всем привет. У меня есть компонент на котором есть фома. Для этого компонента я поставил guard canDeactivate который блокирует переход по другим страницам если форма не отправлена. Проблема в том что, у меня есть ссылка на выход из аккаунта:
<a routerLink="/login" (click)="logout($event)">Logout</a>

где
logout(event) {
  this.authService.logout();
}

Проблема в том, что приложение спрашивает у юзера хочет ли он покинуть страницу, но и также выходит из его профиля. Можно ли как то узнать был ли сделан переход, что бы после него выйти? Спасибо
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
StivinKing
@StivinKing
<button (click)="showConfirmLogout()">Logout</button>

public showConfirmLogout(): void {
  this._confirmService.open('Вы действительно хотите выйти?').then(() => {
    this._logout();
  });
}

private _logout(): void {
  this._authService.logout().subscribe(() => {
    this._router.navigate(['/login']);
  });
}


_confirmService - мой сервис который заменяет стандартный confirm. Можете использовать что-то своё или взять готовое, или стандартное
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы