代码之家  ›  专栏  ›  技术社区  ›  Rafi Henig

角HttpParams append未追加

  •  0
  • Rafi Henig  · 技术社区  · 5 年前

    我已经建立了一个习惯 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 };
    }
    

    我用的是 httpParamsFactory 如下所示:

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

    由于某些原因,查询字符串没有添加到URL中,我尝试了调试 httpParamsFactory公司 结果发现附加的功能 console.log(params.keys()) 返回空数组。

    1 回复  |  直到 5 年前
        1
  •  1
  •   hbamithkumara    5 年前

    试试这个。。

    方法1

    private httpParamsFactory(parameters: { [key: string]: string }): { params: HttpParams } {
      let params: HttpParams = new HttpParams();
    
      for (const [key, value] of Object.entries(parameters)) {
          params = params.append(key, value)
      }
    
      return { params };
    }
    

    方法2

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

    参考

    Angular HttpParams