【发布时间】:2019-07-25 00:05:01
【问题描述】:
我通过附加一些可选的 HttpParam 来发出请求。在我的服务内部的一种方法中,这会将参数添加到 map 属性。在同一服务内的相邻方法中,附加map 后仍然为空。
我创建 HttpParams,然后附加我需要的内容。
整个工作方式是这样的。
const user = this.sessionHelperService.checkUser();
const headers = this.sessionHelperService.getAuthHeader();
const apiUrl = `${this.LAB_URL_CHUNK}/${user.lab}/${this.LOG_BOOK_INSTRUMENTS_URL_CHUNK}/`;
let params = new HttpParams();
pageIndex++;
params = params.append('page', pageIndex.toString());
params = params.append('page_size', pageSize.toString());
params = params.append('paginate', 'true');
if (locationId) {
params = params.append('location_id', locationId.toString());
}
return this.http.get<LogBookInstruments[]>(apiUrl, { headers, params })
.pipe(
catchError((res: HttpResponse<any>) => observableThrowError(res.status)));
未正确形成参数的方法如下所示。它们非常相似,所以我不知道为什么参数的形成方式不同。
const user = this.sessionHelperService.checkUser();
const headers = this.sessionHelperService.getAuthHeader();
sortColumn = sortDirection === '' ? '' : sortDirection === 'asc' ? sortColumn : '-' + sortColumn;
const apiUrl = `${this.LAB_URL_CHUNK}/${user.lab}/${this.LOG_BOOK_ENTRIES_URL_CHUNK}/?sort=${sortColumn}`;
let params = new HttpParams();
pageIndex++;
params = params.append('page', pageIndex.toString());
params = params.append('page_size', pageSize.toString());
params = params.append('paginate', 'true');
return this.http.get<LogEntry[]>(apiUrl, { headers })
.pipe(
catchError((res: HttpResponse<any>) => observableThrowError(res.status)));
当我在工作方法中记录参数时,它会在map 数组中显示附加参数,而cloneFrom 属性是不同的。
cloneFrom: null
encoder: HttpUrlEncodingCodec {}
map: Map(3)
size: (...)
__proto__: Map
[[Entries]]: Array(3)
0: {"page" => Array(1)}
1: {"page_size" => Array(1)}
2: {"paginate" => Array(1)}
length: 3
updates: (3) [{…}, {…}, {…}]
__proto__: Object
当我在新的无效方法中记录参数时,map 数组为空。
cloneFrom: HttpParams {updates: null, cloneFrom: null, encoder: HttpUrlEncodingCodec, map: null}
encoder: HttpUrlEncodingCodec {}
map: null
updates: (3) [{…}, {…}, {…}]
__proto__: Object
为什么类似的方法要创建不同的参数?
【问题讨论】:
标签: angular typescript http parameters