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

How to create HttpParams using object for HTTP request on Angular 4.3 using HttpClient

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

let query = {
    param1: 1,
    param2: 'a'
}

我想做类似的事情:

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

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

编辑 1:

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

我是这样解决的:

const params: HttpParams = new HttpParams().set('filters', JSON.stringify(filters));

可以使用 fromObject 属性

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

const body = new HttpParams({fromObject: params})

这对我有用:

return this.httpClient.get(this.config.apiUrl + '/items', {
        params: <HttpParams>(<unknown>params),
        headers: headers
    });