如何使用HttpClient在Angular 4.3上使用object for HTTP for create创建HttpParams

时间:2017-10-10 08:26:38

标签: angular angular-httpclient

我有完全角度版本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(查询)方法。所以我需要迭代查询键并将它们逐个添加到参数中。对此有更简单的解决方案吗?

EDIT1:

根据这个答案,这可以从角度5.0.0-beta.6(2017-09-03)开始,但对我来说不是解决方案。 https://stackoverflow.com/a/46317900/1995258

2 个答案:

答案 0 :(得分:3)

这可以通过使用 fromObject 属性

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

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

答案 1 :(得分:1)

我以这种方式解决了这个问题:

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