为用户输出消息

Output messages for the user

我需要你的帮助。我使用 toast 库为我的授权系统显示用户消息。我没有错误,一切正常,但不正确。事实是我登录时出现消息,但输入不正确的数据时不起作用。告诉我,我做错了什么?非常感谢

success_message: string = "You logged in"
error_message: string = "Incorrect data"

coustructor(private toastService: ToastrService) {}

show_success(success_message: string) {
   this.toastService.success(this.success_message)
}

show_error(error_message: string) {
   this.toastService.error(this.error_message)
}

loginToSystem() {
this.tokenSubscription = this.authSerivce.loginUser(
  this.loginForm.controls['username'].value,
  this.loginForm.controls['password'].value,
  this.rememberMeForm.controls['rememberMe'].value).subscribe(() => {
    if (this.tokenSubscription) {
      this.router.navigateByUrl(this.returnUrl)
      this.show_success(this.success_message)
      this.resetForm()
    } else if (!this.tokenSubscription){
      this.show_error(this.error_message)
    }
 })
}

您应该在订阅的 error block 中处理 error 响应。所以你的代码应该是这样的。

loginToSystem(): void {
        this.tokenSubscription = this.authSerivce
            .loginUser(
                this.loginForm.controls['username'].value,
                this.loginForm.controls['password'].value,
                this.rememberMeForm.controls['rememberMe'].value
            )
            .subscribe(
                (success: any) => {
                    this.router.navigateByUrl(this.returnUrl);
                    this.show_success(this.success_message);
                    this.resetForm();
                },
                (error: any) => {
                    this.show_error(this.error_message);
                }
            );
    }