我在Angular登录页面上实现了ngx-toastr。出于某种原因,成功消息有效,但错误并不存在。我尝试在成功的登录语句中使用错误消息,但它有效,但它不会在失败的登录语句中显示。我的代码(底部的登录方法):
table_array
似乎它应该是一个显而易见的事情,但我也尝试过把它放在我的服务中,它仍然无法正常工作。我已经尝试更改我的import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { AuthService } from '../auth.service';
import { Router } from '@angular/router';
import { ViewContainerRef } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
@Component({
selector: 'app-login-modal',
templateUrl: './login-modal.component.html',
styleUrls: ['./login-modal.component.css']
})
export class LoginModalComponent implements OnInit {
//Hold user data from form to send to Mongo
user = {
email: '',
password: ''
};
constructor(
private session: AuthService,
private router: Router,
public vcr: ViewContainerRef,
private toastr: ToastrService
) {
}
ngOnInit() {
}
showError() {
this.toastr.error('Username and/or password incorrect.');
}
showSuccess() {
this.toastr.success('Success!');
}
login() {
this.session.login(this.user)
.subscribe(result => {
if (result === true) {
//login successful
this.router.navigate(['/']);
this.showSuccess();
} else {
//login failed
this.showError(); <--DOESN'T WORK
console.log('result not ok', result)
}
});
}
}
以将错误放在第一位等等,但没有。好奇是否有人遇到过这种情况,或者是否有一些我在这里遗漏的明显事物?
编辑:如果好奇,请使用Angular v.5。
答案 0 :(得分:1)
因此,只要您的服务器返回401错误,您将永远不会进入result => { ... }
块,因为它将被处理为错误。按以下方式调整login()
功能
login() {
this.session.login(this.user)
.subscribe(result => {
//login successful
this.router.navigate(['/']);
this.showSuccess();
}, error => {
//login failed
this.showError();
console.log('result not ok', result)
});
}
它会起作用!