我无法让我的事件发射器在promise的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>
这是父组件的typescript代码,header.component.ts:
setLoginLoading(bool: boolean) {
console.log(bool);
this.loginLoading = bool;
}
这几乎就像在promise的.then回调中的Event Emitter调用从来没有被调用过,因为它没有运行setLoginLoading的console.log。它使得它更难,因为根本没有错误消息。
答案 0 :(得分:0)
问题与路由如何弄乱我的身份验证状态有关。我真的无法解释它。我在我的项目中取出了路由,不知怎的,一切都很好。