gpt4 book ai didi

angular - 多个对象到 HttpParams

转载 作者:太空狗 更新时间:2023-10-29 17:29:32 24 4
gpt4 key购买 nike

我在表单控件中有一些类别,我将它们发送到一个字符串数组中,如下所示:

[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
}

但我想将它们作为对象数组发送,使用旧版本的 angular Http 我能够对对象执行 foreach 并附加每个类别。但我不知道如何获取每个类别并使每个类别成为参数的附加项。我需要这样:

...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

关于angular - 多个对象到 HttpParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46761973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com