在post方法中,我只需要发送具有形式(api规范)值的参数,而不是所有数据。有没有一种方法只能发送被触摸的字段
{"keywords":"key, pase","fps":0,"productionYear":1920,"contentType":2,"country":"US", "tags":["trap","bad","day","anderson"],"related":[], "series": ""}
这是用于编辑电影的示例请求放置方法,最终我只想发送非空字符串或空数组的那个。
在此放置请求:
return this.http
.put(`${this.config.apiUrl}/` + requri + `/` + id, obj)
.pipe(
catchError(error => {
return this.errServ.handleError(error);
})
);
答案 0 :(得分:1)
在请求正文中发送对象之前,您必须手动执行此工作。考虑创建一个单独的函数来完成这项工作。
//{"keywords":"key, pase","fps":0,"productionYear":1920,"contentType":2,"country":"US", "tags":["trap","bad","day","anderson"],"related":[], "series": ""}
takeNonEmptyObjects (obj) {
const result = {}
for (var k in obj) {
if (!obj.hasOwnProperty(k)) return;
const value = obj[k]
if (value === null || value === undefined) || value === "")) {
result[k] = obj[k];
}
}
return result;
}
如果您想对所有请求主体都应用上述行为,请在发出请求之前考虑从HttpIntercepter
调用上述函数。
答案 1 :(得分:1)
这是完整的证明解决方案,它将 标识您的字段是PS C:\WINDOWS\system32> 1..3 | foreach {Write-Host $_}
1
2
3
PS C:\WINDOWS\system32> 1..3 | foreach {{Write-Host $_}}
Write-Host $_
Write-Host $_
Write-Host $_
还是Object
,相应地检查值并删除空数组/空值/未定义的/空字符串从传递的数组中获取 -
String