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中有一些类别,我将它们发送到一个字符串数组中,如下所示:
那是我的实际代码: 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并追加每个类别.
解决方法
您可以使用.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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |