猿问

Angular 查询参数,例如 httpd_query_params


我目前正在使用带有功能测试的 API。所以我知道我会对下面的网址做出很好的回应:


/api/v1/investisseurs?vehicule%5B0%5D=4

等效的 url 解码


/api/v1/investisseurs?vehicule[0]=4

使用 Angular 发出我的呼叫,HttpParams如下所示


getInvestors(params: HttpParams): Promise<MelodiiaCollectionResponse> {

    console.log(params);

    return <Promise<MelodiiaCollectionResponse>>this.http.get(environment.httpdBackHost + '/investisseurs', {

       params: params,

}).toPromise();

这个结果在我的浏览器中带有以下请求


/api/v1/investisseurs?vehicule%5B%5D=%5B%222%22%5D&page=1&max_per_page=15

等效的 url 解码


/api/v1/investisseurs?vehicule[]=["2"]&page=1&max_per_page=15

http_build_query问题,如何在 Angular 7中使用与 php 方法相同的查询参数编码?


我想避免自己重新实现轮子:)


预先感谢您的帮助


慕桂英4014372
浏览 127回答 1
1回答

HUH函数

您可以使用HttpParamsbuilder 通过链接append方法自动解析您的参数。并且使用一些减速器,您可以在 httpParams 中提供数组值import { HttpParams } from '@angular/common/http';//Whatever...getInvestors(vehicules: number[], page: number, maxPerPage: number): Promise<MelodiiaCollectionResponse> {&nbsp; const params = vehicules.reduce(&nbsp; &nbsp; (previous, vehicule, index) => previous.append(`vehicule[${index}]`, vehicule.toString()),&nbsp; &nbsp; &nbsp;new HttpParams()&nbsp; &nbsp;)&nbsp; &nbsp;.append('max_per_page', maxPerPage.toString())&nbsp; &nbsp;.append('page', page.toString())&nbsp; return this.http.get<MelodiiaCollectionResponse>(`${environment.httpdBackHost}/investisseurs`, {&nbsp; &nbsp; &nbsp;params,&nbsp; }).toPromise();}
随时随地看视频慕课网APP
我要回答