在 post 方法中,我只需要发送在表单(api 规范)中有值(value)的参数,而不是所有数据。有没有办法只发送触摸的字段
{"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);
})
);
最佳答案
在请求正文中发送对象之前,您必须手动执行此工作。考虑创建一个单独的函数来完成这项工作。
//{"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
调用上述函数。
关于javascript - Angular6:表单=如何选择我将发送哪些参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553811/