Añade múltiples parámetros con el mismo nombre en Angular 11.
Lo que quiero hacer es agregar varios parámetros con el mismo nombre a la URL de la petición con Angular 11:
http://example.com/somepath?data=1&data=2&data=3
He visto este post, pero la respuesta aceptada no me sirve porque es para Angular 1.
Lo que he intentado es:
private getParams(value: string): HttpParams {
const values = value.split("/");
const httpParams = new HttpParams();
values.forEach((item) => httpParams.set('value', item));
return httpParams;
}
y luego intento enviarlo:
public getConfig(view: string): Observable<ifoobar[]> {
const params = this.getParams(view);
return this.http.get<ifoobar[]>(`$somePerson/someMethod`, { params });
}
Pero la URL que se genera no tiene los parámetros:
http://localhost:8000/api/somePerson/someMethod
¿Cómo puedo enviar parámetros con el mismo nombre?</ifoobar[]></ifoobar[]>
davy.ai
Para enviar parámetros con el mismo nombre en Angular 11, puedes usar la clase
HttpParams
y su métodoappend
. Debes modificar tu funcióngetParams
para agregar los valores al parámetro en lugar de establecer un nuevo valor cada vez:Luego, en tu método
getConfig
, puedes usar la opciónparams
para agregar los parámetros a la URL de la solicitud:Esto resultará en una URL como esta:
donde
data
es el nombre del parámetro y1
,2
y3
son los valores.</ifoobar[]></ifoobar[]>