C
C
Chvalov2018-09-20 21:58:25
Angular
Chvalov, 2018-09-20 21:58:25

How to make a GET request from FormArray fields?

Project code: https://stackblitz.com/edit/rest-request-test-2
There is a FormArray:

requestForm = this.fb.group({
    method: [null],
    baseUrl: [null],
    urlParams: new FormArray([
      new FormGroup({
        name: new FormControl(null),
        value: new FormControl(null),
        mark: new FormControl(null)
      })
    ]),
    headerParams: new FormArray([
      new FormGroup({
        name: new FormControl(null),
        value: new FormControl(null)
      })
    ]),
  });

In urlParams there are GET request parameters and tags by parameters,
I actually don’t know how to pull out one-there only nameand valuepass it to HttpParams or
URLSearchParams to get a string in the formsite.com/test?name=value&name2=value22&login=admin

Answer the question

In order to leave comments, you need to log in

1 answer(s)
M
Mikhail Smolinsky, 2018-09-21
@nntndfrk

Maybe I can help:

onSubmit() {
    let urlParamsFromFB = [];
    this.requestForm.value.urlParams.forEach(param => { // проходимся циклом по значениях формы
      if (param.name && param.value) { // проверяем, что значения не квазиложные
        urlParamsFromFB.push( {name: param.name, value: param.value} ); // выбираем только name и value
      }
    })

    let urlParamsForHTTP = new HttpParams(); // создаем объект для query-параметров
    urlParamsFromFB.forEach(param => {
      urlParamsForHTTP = urlParamsForHTTP.set(param.name, param.value) // сэтаем сохранённые значения из формы 
    })                                                                 // в объект query-параметров.
                                                                       // Сам объект query-параметров должен перезаписываться по значению

    this.http.get('https://jsonplaceholder.typicode.com/users', {params: urlParamsForHTTP})  // делаем get-запрос, передав вторым аргументом
      .subscribe(data => console.log(data));                                                 // объект с полем params, равным объекту query-параметров.
    
  }

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question