Функция углового запуска после входа в систему - PullRequest
0 голосов
/ 25 мая 2018

У меня есть приложение 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 или браузер для обновления страницы, то появляются события.

Как я могу получить события и показать их без необходимости перезагрузки страницы?

...