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