加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 将多个对象转换为HttpParams

发布时间:2020-12-17 17:05:13 所属栏目:安全 来源:网络整理
导读:我在formcontrol中有一些类别,我将它们发送到一个字符串数组中,如下所示: [1,4,6] 那是我的实际代码: let categoryIds = new ArrayString()this.selectedCategories.forEach((value: string,key: string) = categoryIds.push(key))let requestOptions = {
我在formcontrol中有一些类别,我将它们发送到一个字符串数组中,如下所示:

[1,4,6]

那是我的实际代码:

let categoryIds = new Array<String>()
this.selectedCategories.forEach((value: string,key: string) =>
  categoryIds.push(key))

let requestOptions = {
    params: new HttpParams()
        .set('title',this.createNewForm.controls['title'].value)
        .append('content',this.createNewForm.controls['content'].value)
        .append('categoryids',categoryIds.toString()),withCredentials: true
}

但是我希望将它们作为一个对象数组发送,使用旧版本的角度Http我可以对该对象做一个foreach并追加每个类别.
但我不知道如何获得每个类别,并使每个类别附加到params.
我需要这样:

…categoryId=1&categoryId=4&categoryId=6…

解决方法

您可以使用.append将值附加到参数,并在处理值数组时为您提供所需的结果. .set用于设置或替换参数的值.所以你真的应该做更多类似的事情:

let httpParams = new HttpParams()
  .set('title',this.createNewForm.controls['title'].value)
  .set('content',this.createNewForm.controls['content'].value);

categoryIds.forEach(id => {
  httpParams = httpParams.append('categoryId',id);
});

const requestOptions = {
  params: httpParams,withCredentials: true
};

这并不明显,但.append方法不会改变调用它的HttpParams对象,而是返回一个新对象.这就是我们在上面的例子中重新分配httpParams的原因.此外,可以在不先使用.set设置参数的情况下调用.append.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读