Задать вопрос

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

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

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

Проблема в том, что приложение спрашивает у юзера хочет ли он покинуть страницу, но и также выходит из его профиля. Можно ли как то узнать был ли сделан переход, что бы после него выйти? Спасибо
  • Вопрос задан
  • 64 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 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. Можете использовать что-то своё или взять готовое, или стандартное
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Сбер Москва
от 130 000 ₽
Wanted. Ростов-на-Дону
До 160 000 ₽
ClickStar Санкт-Петербург
от 150 000 до 300 000 ₽
27 дек. 2024, в 14:09
8000 руб./за проект
27 дек. 2024, в 13:50
6000 руб./за проект
27 дек. 2024, в 09:38
6000 руб./за проект