У меня есть приложение Angular, в котором я хочу запустить функцию после успешного входа в систему.
Служба аутентификации очень проста.
Это выглядит так:
@Injectable()
export class AuthenticationService {
isLoginSubject = new BehaviorSubject<boolean>(this.hasToken());
constructor(
private http: HttpClient
) { }
login(username: string, password: string) {
localStorage.setItem('user', username);
return this.http.post(PROD_URL, {username: username, password: password})
.map(response => {
if (response && response['token']) {
localStorage.setItem('userToken', 'Token ' + response['token']);
this.isLoginSubject.next(true);
}
console.log(response);
return response;
});
}
logout() {
localStorage.removeItem('userToken');
this.isLoginSubject.next(false);
}
isLoggedIn() {
return this.isLoginSubject.asObservable();
}
private hasToken(): boolean {
return !!localStorage.getItem('userToken');
}
}
У меня есть только диалог входа в систему с именем пользователя и паролем, и после успешного входа я хочу запустить событие.
Функция выглядит следующим образом:
getEvents() {
this.rest
.getEvents()
.subscribe(
data => {
this.store.dispatch(new AddEventsAction(data));
},
(err: HttpErrorResponse) => {
console.log(err.status);
},
() => console.log('Done')
);
}
Теперь моя проблема заключается в следующем:
Когда я вхожу в систему, отображается мой экран, но мои события отсутствуют,Если я использую F5 или браузер для обновления страницы, то появляются события.
Как я могу получить события и показать их без необходимости перезагрузки страницы?