如何以类似于 Angular 中的 HttpHeaders 的紧凑方式设置 HttpParams
How to set HttpParams in a compact way similar to HttpHeaders in Angular
我是 Angular 的新手,现在正在从 "the old" Http API 升级到新的 HttpClient API。
因此,我必须使用新的 HttpHeaders 和 HttpParams,它们目前运行良好。但是我能找到的声明示例对我来说有点奇怪,因为它基本上可以归结为这个。
let searchParams = new HttpParams();
searchParams = searchParams.append('query', query);
searchParams = searchParams.append('sort', sort);
searchParams = searchParams.append('order', order);
const headers = new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + user['sessionToken']
});
有没有办法像HttpHeaders一样声明HttpParams?我使用的方法是我在网上找到的唯一方法,经过大量尝试和错误后似乎是唯一可行的方法。
我不是在问如何设置 HttpParams,我想知道为什么 HttpParams 和 HttpHeaders 不能以相同的方式设置(在我的示例中设置 HttpHeaders 的方式,在一行中声明)。
在 Angular@5
中,您可以像 headers 一样设置参数,如下所示:
let searchParams = new HttpParams({
fromObject: {
query: query,
sort: sort,
order: order
}
});
const modified = req.clone({params: searchParams});
或者您可以直接在请求上使用 setParams
方法:
const modified = req.clone({setParams: {'query': query, 'sort': sort, 'order': order}});
如果您对为什么 HttpParams
和 HttpHeaders
不可变感到好奇,请查看此答案 Why do most classes of the HttpClient API define immutable objects?
我是 Angular 的新手,现在正在从 "the old" Http API 升级到新的 HttpClient API。
因此,我必须使用新的 HttpHeaders 和 HttpParams,它们目前运行良好。但是我能找到的声明示例对我来说有点奇怪,因为它基本上可以归结为这个。
let searchParams = new HttpParams();
searchParams = searchParams.append('query', query);
searchParams = searchParams.append('sort', sort);
searchParams = searchParams.append('order', order);
const headers = new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + user['sessionToken']
});
有没有办法像HttpHeaders一样声明HttpParams?我使用的方法是我在网上找到的唯一方法,经过大量尝试和错误后似乎是唯一可行的方法。
我不是在问如何设置 HttpParams,我想知道为什么 HttpParams 和 HttpHeaders 不能以相同的方式设置(在我的示例中设置 HttpHeaders 的方式,在一行中声明)。
在 Angular@5
中,您可以像 headers 一样设置参数,如下所示:
let searchParams = new HttpParams({
fromObject: {
query: query,
sort: sort,
order: order
}
});
const modified = req.clone({params: searchParams});
或者您可以直接在请求上使用 setParams
方法:
const modified = req.clone({setParams: {'query': query, 'sort': sort, 'order': order}});
如果您对为什么 HttpParams
和 HttpHeaders
不可变感到好奇,请查看此答案 Why do most classes of the HttpClient API define immutable objects?