2017-08-16 48 views
0

我有一个角度项目,它具有一个表单控件的变量。这是我的模板看起来如何:如果值为空,更新formGroup值

<form [formGroup]="updateValuesForm"> 
    <div *ngFor="let controlName of updateValuesForm.controls | keys"> 
     <input [formControlName]=controlName type="text"> 
    </div> 
</form> 

这按预期工作。我正在尝试执行以下操作: 如果控制值为空,则应将该值更改为&nbsp;,此值不应显示在表单中(因为最终用户无法理解这将意味着什么)。这是甚至可能在Angular形式?

+0

不要去碰这样做的时刻提交或者当你需要它的一些 '操作',只是如果(!此。 ... controlName.value)val =“” “并使用val代替我在想为什么要更改值如果你不使用它并且不显示 – Vega

回答

0

尝试此操作,而不是在输入为空时更改输入值,而只需在提交表单时处理它之前更改数据的值即可。这将确保用户不会看到&nbsp;

HTML

<form [formGroup]="updateValuesForm" (ngSubmit)="submitForm(updateValuesForm.value)"> 
    <div *ngFor="let controlName of updateValuesForm.controls | keys"> 
     <input [formControlName]=controlName type="text"> 
    </div> 
</form> 

打字稿

submitForm(data: any) { 

    for (var value in data) { 
     if (!data[value]) { 
      data[value] = '&nbsp;'; 
     } 
    } 

    // Handle Form Submission 

}