如何使用 HttpClient 在 Angular 4.3 上使用对象为 HTTP 请求创建 HttpParams

mak*_*asi 1 angular angular-httpclient

我有完全 angular 版本 4.3.2,由于依赖关系我无法更新。所以现在我坚持这个版本。我有一个带有动态参数的对象(里面可以有其他键和值):

let query = {
    param1: 1,
    param2: 'a'
}
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

params = new HttpParams();
params = params.append(query);
return this.httpClient.get(this.config.apiUrl + '/items', {
            params: params,
            headers: headers
        });
Run Code Online (Sandbox Code Playgroud)

但没有这样的 params.append(query) 方法。所以我需要遍历查询键并将它们一一添加到参数中。有没有更简单的解决方案?

编辑1:

根据这个答案,这可以从 angular 5.0.0-beta.6 (2017-09-03) 开始完成,但对我来说不是解决方案。 /sf/answers/3242253031/

小智 6

我是这样解决的:

const params: HttpParams = new HttpParams().set('filters', JSON.stringify(filters));
Run Code Online (Sandbox Code Playgroud)


H S*_*ogr 6

它可以通过使用fromObject属性来完成

const params = {
    email:'abc@xyz.com',
    password:'qwerty'
}

const body = new HttpParams({fromObject: params})
Run Code Online (Sandbox Code Playgroud)