Angular4:如何使用HttpParams设置参数?

DS_*_*per 2 httpclient angular

所以,从http迁移到httpClient,我正在尝试使用HttpParams为我的get请求设置params ....

逻辑很简单

const params = new HttpParams();

if(expression) {
    params.set('foo', 'bar');
}

this.http.get('url.json', {params: params});
Run Code Online (Sandbox Code Playgroud)

这样,参数不会通过!params.set('foo','bar'); 什么都不做..(无论满足条件;))

如果我这样做,但是:

const params = new HttpParams().set('foo', 'bar');
Run Code Online (Sandbox Code Playgroud)

foo已经设定好了!

我如何在我的案例中使用HttpParams(涉及一些评估)?

Ant*_*Lee 5

试试这个

let params = new HttpParams();

if(expression) {
    params = params.set('foo', 'bar');
}
Run Code Online (Sandbox Code Playgroud)

API:

/**
* Construct a new body with a new value for the given parameter name.
*/
set(param: string, value: string): HttpParams;
Run Code Online (Sandbox Code Playgroud)