You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HttpParams中设置字符串数组 实现同一查询参数多次赋值

解决方法

你的问题出在没有对数组类型的参数值做拆分处理,直接把整个数组作为单个值调用append,因此只会生成一组键值对。HttpParams本身支持重复调用append()方法添加同名key的参数,修改方案如下:

方案1:手动遍历处理数组

// 注意这里的key要替换成你实际需要的filterBidAwardStatus,不要用arr
let myObj = {
  filterBidAwardStatus: ['Awarded', 'Not awarded']
}


getAuctionBIds(queryParams) {
  let params = new HttpParams();
  for(let key in queryParams) {
    const val = queryParams[key];
    // 数组类型遍历每一项添加
    if (Array.isArray(val)) {
      val.forEach(item => {
        params = params.append(key, item);
      })
    } else {
      params = params.append(key, val);
    }
  }
  return this.http.get('api-service.com/auctions', {params})
}

方案2:直接使用HttpParams构造函数的fromObject配置

HttpParams构造函数的fromObject参数原生支持数组值自动拆分,不需要手动遍历,写法更简洁:

getAuctionBIds(queryParams) {
  const params = new HttpParams({
    fromObject: queryParams
  });
  return this.http.get('api-service.com/auctions', {params})
}

两种方案最终生成的查询参数都能达到你预期的filterBidAwardStatus=Awarded&filterBidAwardStatus=Not%20awarded效果。

内容的提问来源于stack exchange,提问作者peckoski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:24:02