在Angular中,如何处理http调用返回的服务器端验证错误?

在Angular中,如何处理http调用返回的服务器端验证错误?,angular,typescript,validation,Angular,Typescript,Validation,通过遵循各种指南,我开发了一个服务,可以调用该服务将登录详细信息发送到后端进行验证和操作。我能够根据输入返回正确的错误代码,但是接下来呢 导出类身份验证服务{ 构造函数私有http:HttpClient{} GetUserDetailsMail,密码{ //发布到API服务器-返回用户信息(如果有效) 返回此.http.post'http://localhost/api/listee/task_login.php', { 电子邮件 暗语 }.subscribedata=>{ console.lo

通过遵循各种指南,我开发了一个服务,可以调用该服务将登录详细信息发送到后端进行验证和操作。我能够根据输入返回正确的错误代码,但是接下来呢

导出类身份验证服务{ 构造函数私有http:HttpClient{} GetUserDetailsMail,密码{ //发布到API服务器-返回用户信息(如果有效) 返回此.http.post'http://localhost/api/listee/task_login.php', { 电子邮件 暗语 }.subscribedata=>{ console.logdata,“从登录尝试返回” 变量数据:任何; 数据=数据; 如果data.post|u出错| data.email|u出错 console.log'ak;dsfj'; } } }
数据将返回到类的函数。。。如何从该范围内对表单元素进行操作?我需要在正确的表单元素上以某种方式触发错误代码。我如何访问它们?我需要手动选择document.getElementByID还是有更复杂/正确的方法?

我认为getUserDetail应该是可观察的

export class AuthService {

constructor(private http: HttpClient) { }

getUserDetails(email, password): Observable<any> {
// post to API server - return user info if valid

    return this.http.post('http://localhost/api/listee/task_login.php', {
        email,
        password
        })
       // .subscribe(data => {
       //      console.log(data, 'returned from login attempt')
       //      var theData: any;
       //      theData = data;
       //      if (theData.post_err || theData.email_err)
       //      console.log('ak;dsfj');
       //  })
    }
}

不要在服务中订阅,只需让组件处理订阅和需要运行的任何其他逻辑即可。服务应该做一件事,getUserDetails,它不应该处理错误的传递和操作。

我认为getUserDetail应该是可观察的

export class AuthService {

constructor(private http: HttpClient) { }

getUserDetails(email, password): Observable<any> {
// post to API server - return user info if valid

    return this.http.post('http://localhost/api/listee/task_login.php', {
        email,
        password
        })
       // .subscribe(data => {
       //      console.log(data, 'returned from login attempt')
       //      var theData: any;
       //      theData = data;
       //      if (theData.post_err || theData.email_err)
       //      console.log('ak;dsfj');
       //  })
    }
}

不要在服务中订阅,只需让组件处理订阅和需要运行的任何其他逻辑即可。服务应该做一件事,getUserDetails,它不应该处理错误的传递和操纵。

谢谢!不确定为什么指南中说subscribe-observable更有意义。新问题:既然getUserDetails是一个可观察的,它返回的是一个可观察的,而不是从getUserDetails函数返回的数据。我该如何访问这些数据?没关系。我问了第二个问题,得到了服务中可以看到的答案,在呼叫组件中订阅我的道歉,直到今天早上我才看到你的评论。我很高兴你找到了答案。谢谢!不确定为什么指南中说subscribe-observable更有意义。新问题:既然getUserDetails是一个可观察的,它返回的是一个可观察的,而不是从getUserDetails函数返回的数据。我该如何访问这些数据?没关系。我问了第二个问题,得到了服务中可以观察到的答案,在呼叫组件中订阅我的道歉,直到今天早上我才看到你的评论。我很高兴你找到了答案。