【发布时间】:2019-02-05 05:29:07
【问题描述】:
我刚开始学习 Angular,但我对如何让它在以下场景中工作感到有些困惑。假设 service.ts 中的响应返回一个非 0 的数字(即应设置自定义错误消息):
service.ts
errorMessage: string = "";
setErrorMessage(message:string){
this.errorMessage = message;
}
getErrorMessage(){
return this.errorMessage;
}
setRegistrationData(provider, email){
this.login.accountExist(provider, email).subscribe( (response: UserCount) => {
if (response.count == 0) {
//do something
return true;
}else{
this.setErrorMessage("Custom Error Message");
return false;
}
}
组件.ts
errorMessage = "";
sendData(){
if(this.register.setRegistrationData(provider, email)){
//do something
}else{
this.errorMessage = this.service.getErrorMessage();
console.log(this.errorMessage); //Empty
console.log(this.service.getErrorMessage()); //Empty
console.log("Catastrophic Failure");
}
}
component.html
<input type="submit" (click)="sendData();" />
<div>{{errorMessage}}</div>
所以我了解到service.ts中errorMessage的设置是在通过subscribe方法得到component.ts中的errorMessage之后完成的。这是通过控制台日志测试的,在打印“灾难性错误”之前给出了两个空行。
将自定义错误消息传递到模板的最佳方式是什么?
提前致谢
【问题讨论】:
-
当数字不为0时,响应的状态是否不同于成功?
-
不太清楚你的意思。假设响应输出值 {count: 1},然后,它在该时间点将服务中的 errorMessage 设置为“自定义错误消息”。然后它返回false。请您进一步澄清一下吗?
-
我说的是http状态,但这里好像不是这样。
标签: angular