我在表单控件中有一些类别,我将它们发送到一个字符串数组中,如下所示:
[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 并附加每个类别。
但我不知道如何获取每个类别并将每个类别附加到参数中。
我需要这样:
...类别Id=1&类别Id=4&类别Id=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
在上面的例子中。还,.append
无需先使用即可调用.set
设置参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)