Angular - 参数不附加到 HttpParams

Raf*_*nig 1 angular

我构建了一个httpParams接受键值对象的自定义函数,如下所示:

private httpParamsFactory(parameters: { [key: string]: string }): { params: HttpParams } {
  const params: HttpParams = new HttpParams();

  for (const [key, value] of Object.entries(parameters)) params.append(key, value)

  return { params };
}
Run Code Online (Sandbox Code Playgroud)

我正在使用httpParamsFactory如下:

remove = (id: string): Observable<boolean> => this.http.delete<boolean>(`some/url`, this.httpParamsFactory({ id }))
Run Code Online (Sandbox Code Playgroud)

尽管我付出了努力,但我无法在 URL 中包含查询字符串,我尝试调试httpParamsFactory,但结果发现查询字符串没有被附加,如console.log(params.keys())报告的空数组。

ber*_*ing 6

因为你正在做:

params.append(key, value)
Run Code Online (Sandbox Code Playgroud)

你应该做

params = params.append(key, value)
Run Code Online (Sandbox Code Playgroud)

这很令人困惑,因为我们习惯了.append直接在对象上工作的命名方法,但这里它只返回一个新对象,而旧对象保持不变。每次我接触这门课时,我也会被这个绊倒。