【发布时间】:2020-04-24 06:09:50
【问题描述】:
我有一个 login.service.ts 和我的 login.component.ts
在我的登录组件中,我有一个输入字段,用户在其中输入用户名,当他点击“登录”时,我们检查是否 用户名在此调用中有效:
<button color="primary" mat-raised-button (click)="loadUserInfo(email.value)">
continue
<mat-icon>arrow_forward</mat-icon>
</button>
loadUserInfo(userLogin: string) {
this.loginService.processLogin(userLogin);
}
调用我的服务:
processLogin(loginId: string) {
return this.http.get("api/" + loginId).subscribe(
(user: User) => {
this.userSub.next(user);
},
err => {
console.error("Username not valid");
}
);
}
我无法理解以下内容:
如果呼叫不成功,并且没有具有该用户名的用户,我如何在我的login.component.ts 中显示错误消息
输入字段?我需要一个 bool 或其他东西,但错误处理在 service component 中,所以不太确定最好的方法是什么
我会在我的输入字段下放这个:
<div *ngIf="userNotValid"> Error, this user doesn't exist</div>
但是处理这种情况的最佳方法应该是什么?用户按下按钮,API 返回错误,现在,如何在 login-component html 文件中显示错误? 谢谢
【问题讨论】:
-
您必须使用
BehaviorSubject来存储状态。并使用async管道在您的模板中检索它。 -
我的第一个想法是在组件本身做订阅,直接改变
subscribe中userNotValid的状态。 -
@Ploppy 你能举个例子吗?谢谢
-
@tenkmilan 遗憾的是,逻辑必须保留在服务中!否则我会那样做
-
@AJ989 晚上关机,但如果你早上没有答案,我会给你打一个!
标签: angular subscription