我可以用值初始化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;
}
使用此解决方案,如果输入为假(undefined
、null
或''
(,则该值将被零替换。