我刚刚开始学习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;
}
}
component.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>
所以我理解,作为subscribe方法的结果,在component.ts中获取errorMessage之后,service.ts中的errorMessage的设置就完成了。这是通过控制台日志测试的,在打印“灾难性错误”之前给出了两个空行。
将自定义错误消息传递到模板的最佳方法是什么?
提前致谢
在考虑了我想要实现的内容之后,我只是简单地将subscribe方面移到了component.ts上,让component.ts处理与解决整个问题的错误消息有关的任何事情。
本质上,service.ts应该执行并返回HTTP请求,其中component.ts订阅它并处理逻辑。