Reactive FormGroup隐藏默认值



我可以用值初始化FormGroup,而不让值反映在模型中,这样输入字段一开始就显示为空白吗?

我有一个formGroup,如下所示:

this.fg = this.fb.group({
saleValue: 0,
letValue: 0
});

它与我的模型绑定如下:

<form [formGroup]="fg">
<input formControlName="saleValue" />
<input formControlName="letValue" />
</form>

如果用户没有输入销售/出租值,则应将其作为0提交给服务器,从而使用formGroup进行初始化。

但是,我不希望这个0显示在输入字段中。因此,当我使用getValue()提交表单时,我的值会根据需要进行设置。有办法做到这一点吗?

我担心我需要手动执行,并将FormGroup控件初始化为null,如果值和setValue(0)仍然是null,请检查它们。。。

我认为你应该做一些类似的事情

this.fg = this.fb.group({
saleValue: '',
letValue: ''
});

形式标记

<form [formGroup]="fg" (ngSubmit)="onSubmitFunction(fg)" >
<input formControlName="saleValue" />
<input formControlName="letValue" />
</form>

以及在submit函数中。。

onSubmitFunction (form) {
if (!form.value.saleValue) form.value.saleValue = 0
if (!form.value.letValue) form.value.letValue= 0
// and then submit the form 
}

依赖虚假值。

this.fg = this.fb.group({
saleValue: 0,
letValue: 0
});
submit() {
...
const value = this.fg.value;
this.setDefaultValues(value);
...
}
setDefaultValues(formValue) {
formValue.saleValue = formValue.saleValue || 0;
formValue.letValue = formValue.letValue || 0;
}

使用此解决方案,如果输入为假(undefinednull''(,则该值将被零替换。

最新更新