Вопрос:

Вызывающий источник событий внутри обещания в Angular 2

events angular typescript promise eventemitter

780 просмотра

1 ответ

1 Репутация автора

Я не могу заставить свой источник событий функционировать должным образом в методе then обещания. Я не получаю никаких ошибок. Это просто не будет звонить

в дочернем компоненте:

@Output() isLoggingIn = new EventEmitter<boolean>();

onLogin() {
  this.isLoggingIn.emit(true); //<-- this gets called, so it works.
  this.authService.loginUser(this.loginForm.value)
    .then( () => { 
      console.log(this.isLoggingIn.emit); //<-- This logs out the method.
      this.isLoggingIn.emit(false); //<-- This doesn't get called!
    })
    .catch( (err) => console.log(err) );
}

Это HTML-шаблон родительского компонента header.component.html:

<tas-loginform
  (isLoggingIn)="setLoginLoading($event)"
  *ngIf="!isSigningUp">
</tas-loginform>

Это машинописный код родительского компонента header.component.ts:

setLoginLoading(bool: boolean) {
  console.log(bool);
  this.loginLoading = bool;
}

Это почти так, как будто вызов Event Emitter в обратном вызове обещания .then никогда не вызывается вообще, так как он не запускает console.log setLoginLoading. И это делает его еще сложнее, потому что нет сообщений об ошибках вообще.

Автор: TheMarlow Источник Размещён: 22.08.2016 09:38

Ответы (1)


0 плюса

1 Репутация автора

Проблема была связана с тем, как маршрутизация каким-то образом портит мое состояние аутентификации. Я действительно не могу это объяснить. Я вынул маршрутизацию в моем проекте, и как-то все прекрасно работает.

Автор: TheMarlow Размещён: 25.08.2016 09:48
Вопросы из категории :
32x32