gpt4 book ai didi

javascript - Angular - 未定义到空字段的转换

转载 作者:行者123 更新时间:2023-11-30 09:31:10 27 4
gpt4 key购买 nike

我正在开发一个带有 spring 后端的 Angular 应用程序。我有一个 FormGroup 如下:

myForm = new FormGroup({
fieldOne: new FormControl(),
fieldTwo: new FormControl(),
fieldThree: new FormControl()
});

与这样的对象匹配:

export class MyClass{
firstField: number;
secondField: number;
thirdField: string;
}

当我提交表单时,我会执行以下操作:

this.firstField = myForm.value.fieldOne;

问题是,如果未设置字段,它们就是未定义。这会导致后端服务出现问题,无法反序列化对象,因为它不需要 undefined 而是 null

这可以解决我的问题:

this.firstField = myForm.value.fieldOne ? myForm.value.fieldOne : null;

但是当我有很多字段时,它真的不是那么优雅。然后我发现了以下作品:

export class MyClass{
firstField: number = null;
secondField: number = null;
thirdField: string = null;
}

那就完美了。我的问题是,因为我是 javascript 的新手:这是正确的吗?是否有另一种最佳实践来进行这种转换?您通常如何解决前端和后端之间的此类序列化问题?谢谢。

最佳答案

我认为您的方法没有任何问题。对于未设置的表单值,其默认行为为未定义;根据定义:

The undefined property indicates that a variable has not been assigned a value.

当您指定 null 作为默认值时,因为 JavaScript null 就是“无”。它应该是不存在的东西。因此,如果后端无法处理未定义的情况,请继续将所有成员变量分配为 null。

希望这有帮助!

关于javascript - Angular - 未定义到空字段的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46174654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com