Router.navigate в слушателе dom события

Проект на Angular.

Задача состоит в том, что если у пользователя приложение открыто в двух вкладках и он выходит из системы в одной вкладке, то во второй вкладке url должен измениться на /login. Данные о пользователе хранятся в localStorage. Я подписываюсь на событие storage объекта window. Оно вызывается, если свойства в localStorage как-то изменяется.

private _redirectIfUserLoggedOut(): void {
  window.addEventListener('storage', this._onStorageListener);
}

private _onStorageListener = () => {
  const currentUser = localStorage.getItem('__session_token');

  if (!currentUser) {
    this._router.navigate(['/login']) // this call doesn't work
  }
}

Этот код находится в UserService, в который инджектится Router. Проблема в том, что this._router.navigate не работает. Просто ничего не происходит. Но если эту строку поменять на window.location.href = '/login'. То url менятся, но при этом происходит перезагрузка. При этом this и this._router не равны undefined


Ответы (0 шт):