Angular 4.3中的Http params

oce*_*des 11 http typescript angular

我正在尝试使用Angular 4.3中出现的新http客户端.我已经检查了文档和使用HttpParams该类但它似乎没有工作或我做错了什么.这是我有的:

delete(personId: string) {
    const params = new HttpParams();
    params.set('personId', personId);
    return this.http.delete(`${this.baseUrl}`, {
      params
    });
  }
Run Code Online (Sandbox Code Playgroud)

但在提出请求时,我的网址中没有查询参数.任何帮助都将不胜感激

LLa*_*Lai 21

params现在是不可变的,因此您必须在启动新的HttpParams时设置它们,以便每个set()返回一个新实例并应用更改.尝试

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

以下是涵盖4.3的标题和网址参数的文档 - https://angular.io/guide/http#headers


编辑:我想更新我的答案,并声明在启动HttpParams类时不必设置参数.例如,如果您需要在for循环内或在HttpParams初始化之外设置参数,您可以通过

const params = new HttpParams()
    .set('personId', personId);

params = params.set('personName', personName);
Run Code Online (Sandbox Code Playgroud)

正如文档所述:

HttpHeaders类是不可变的,因此每个set()都返回一个新实例并应用更改.