【发布时间】:2018-06-04 07:40:44
【问题描述】:
我对 Angular 比较陌生,现在正在从“旧”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 的开发者决定这样做,你必须问他们。对于 SO 来说,这并不是一个真正的问题。请注意,您可以在 options 参数中使用
fromObject(请参阅github.com/angular/angular/blob/…),但不能将其直接传递给构造函数 -const params = new HttpParams({ fromObject: { query, sort, order } });。
标签: angular angular2-http