Проблема : Как отправить запрос GET с Angular HttpClient
с массивом объектов, например
[{a: "a", b: "b"}, {a: "c", b: "d"}];
в формате FormData
, например
test[][test]: a
test[][test]: c
test[][lol]: b
test[][lol]: d
, поэтому конечный результат операции должен быть (в виде URL-адреса):
GET /?test[][test]=a&test[][test]=c&test[][lol]=b&test[][lol]=d
Вопрос : мне удалось построить рабочее решение, но оно выглядит хакерским, и эта проблема выглядит вроде распространено, поэтому должно быть лучшее и более чистое решение для элегантного решения этой проблемы с использованием инструментов Angular. Или отправка данных такого формата в этом формате - это вообще плохая практика?
import { HttpClient, HttpParams } from "@angular/common/http";
constructor(private readonly http: HttpClient) {}
const a = [{a: "a", b: "b"}, {a: "c", b: "d"}];
let p = new HttpParams();
a.forEach(a => {
p = p.append('test[][test]', a.a);
p = p.append('test[][lol]', a.b);
});
this.http.get('', {params: p}).subscribe((data) => console.log);