Как передать значения полей формы в теле при вызове службы HTTP post - PullRequest
0 голосов
/ 20 февраля 2019

Работая над вызовом Angular http post и получая API от java-сервиса, чтобы получить ответ от этого сервиса, мне нужно будет передать параметры data / request в URL-адрес, что я делаю, давая var, называемый bodyи затем передаю это с помощью url

Я использую угловые реактивные формы, и из полей формы здесь я хочу отправить параметры запроса в тело Как, когда пользователь заполняет форму, которую он отправляет, и это идет как запроси он получает определенные данные после вычисления из этих полей в виде ответа

Это мой сервисный вызов, когда я передаю жестко закодированные значения, но здесь, как я могу передать значения formcontrolname в тело ???

    getPoll(): Observable<PollData[]> {
  const headers = new HttpHeaders({ 'Content-Type': 'application/json'});

  let body = '{"auth": { "accesskey": "", "signature": "" }, "data": { "v_age": 0, "v_rto_name": "Delhi East: Anand Vihar", "aa_status": false, "tax_type":"IGST","debug_flag":false }}';
  return this.http
  .post<PollData[]>(this.apiUrl + this.premiumUrl, body, { headers: headers })
    .pipe(
      tap(data => console.log('getPoll: ' + JSON.stringify(data))),
      catchError(this.handleError)
    );
}

Когда я передаю жестко закодированные значения, я получаю ответ, но как я могу сделать его динамическим для загрузки из полей реактивной формы.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете передать значения формы в качестве параметра внутри вызова службы компонента.

submitForm() {
 this.yourService.getPoll(this.yourForm.value).subscribe(...);
}

Получить параметры в функции getPoll и

getPoll(yourFormValues): Observable<PollData[]> {
  const headers = new HttpHeaders({ 'Content-Type': 'application/json'});

  let body = '{"auth": { "accesskey": "", "signature": "" }, "data": { "v_age": yourFormValues.v_age, "v_rto_name": yourFormValues.v_rto_name, "aa_status": yourFormValues.aa_status, "tax_type":yourFormValues.tax_type,"debug_flag":false }}';
  return this.http
  .post<PollData[]>(this.apiUrl + this.premiumUrl, body, { headers: headers })
    .pipe(
      tap(data => console.log('getPoll: ' + JSON.stringify(data))),
      catchError(this.handleError)
    );
}
...