【发布时间】:2018-10-05 06:33:32
【问题描述】:
我目前正在将我们的应用程序从 Angular 4 迁移到 Angular 5。在 Angular 5 中,当我们将对象模型作为参数发送时,如果其中一个值为 null,那么它将被转换为“null”字符串。这给我们带来了问题。以下是设置参数的方式:
options = {
headers: header, params: Object.getOwnPropertyNames(jsonParamObject)
.reduce((p, key) => p.set(key, jsonParamObject[key]), new HttpParams())
};
在上面的代码中,我们使用了由该方法的调用者发送的“jsonParamObject”。该对象将具有任意数量的值。因此,如果对象的值为 null 并且当我们发出 http 请求时,值 null 将被转换为“null”字符串。您能否让我知道如何避免这种情况或是否有任何替代方法。其中一种替代方法是使用“0”而不是 null,但这需要在我们的应用程序中进行大量代码更改,所以我正在寻找一个更简单的方法/更好的方法。
【问题讨论】:
-
代码太多!只需使用
{params: jsonParamObject} -
@AluanHaddad:是的,我尝试过直接使用 jsonParamObject,但它给出了同样的错误。所以这不是我们传递参数的方式。该值会自动转换为空字符串。
-
@Valla 您可以在设置
{params: jsonParamObject}之前将对象属性中的null值替换为“0” -
@Niladri:是的,这也是我在问题中提到的替代方案之一。但这需要进行大量更改,所以我想知道这是否是唯一的方法,或者我是否可以在客户端进行任何更改以帮助我解决问题。
标签: angular typescript angular5