Angular6:表格=如何选择我将发送的参数

时间:2019-02-06 12:36:04

标签: javascript angular angular6

在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);
        })
      );

2 个答案:

答案 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