首页 > 解决方案 > 如何在 angular-httpclient 中映射请求参数字段?

问题描述

我有一个 Angular 项目,它有一个用户注册表单,它创建以下注册对象,然后将其传递到注册服务中。但是,服务请求参数是 underscore_cased。在发送 http 请求之前,如何将 firstName 和 lastName 重新映射到 first_name 和 last_name?

export class Registration {
  email: string;
  firstName: string;
  lastName: string;
}

register(registration: Registration) {
    console.log('Registration submitted', registration);
    return this.http.post(`${environment.authUrl}/auth/register`, registration).pipe(
       catchError(err => {
            console.log('Handling error locally and rethrowing it...', err);
            return throwError(err);
       })
    );
}

标签: javascriptangularrxjsangular-httpclient

解决方案


您可以使用所需的键名创建一个新对象,并使用注册对象的值初始化该新创建的对象。

register(registration: Registration) {
  const registerUserObject = {
    'first_name' : registration.firstName,
    'last_name' : registration.lastName,
    'email' : registration.email
  } ;
   
  return this.http.post(`${environment.authUrl}/auth/register`, registerUserObject).pipe(...);
}

推荐阅读