在订阅方法中设置和获取变量

问题描述 投票:0回答:1

我刚刚开始学习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的设置就完成了。这是通过控制台日志测试的,在打印“灾难性错误”之前给出了两个空行。

将自定义错误消息传递到模板的最佳方法是什么?

提前致谢

angular
1个回答
0
投票

在考虑了我想要实现的内容之后,我只是简单地将subscribe方面移到了component.ts上,让component.ts处理与解决整个问题的错误消息有关的任何事情。

本质上,service.ts应该执行并返回HTTP请求,其中component.ts订阅它并处理逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.