尽管我在 html 文件中使用 ngModel 设置值,但验证状态发送空值时出错

Getting error while validation status is sending null value eventhough i set values using ngModel in html file

我的 sql table 有四列。 我正在尝试使用 api 服务验证表单并添加记录,代码如下。 我不想验证状态复选框。 如果选中并且我只想将复选框值发送为“Y” 如果未选中,则为“N”。

鉴于目前的代码,我的状态值变为空...我们是否需要将状态的 ngmodel 与验证绑定???

HTML 文件

<form [formGroup]="addTermForm" (ngSubmit)="onSubmit()">
                    
            <div>
                    <label style="padding-left: 15px;">Status:</label>
                    <span style="padding-left: 10px;"></span> 
                    <input type="checkBox" ngModel
       [ngModel]="addTermForm.get('Status').value=='Y'?true:false"
       (ngModelChange)="addTermForm.get('Status').setValue($event?'Y':'N')"
       [ngModelOptions]="{standalone:true}"
       [ngClass]="{'is-invalid': submitted && addTermForm.get('Status').errors}">
                    
            
                    <div *ngIf="submitted &amp;&amp; addTermForm.controls.status.errors" class="text-danger">
                    <div *ngIf="addTermForm.controls.status.errors">
                      Status is required
                    </div>
                    </div>
           </div>          
                    <br>
                    <br>
                                    
                  
                  </form>

您正在 formGroup 中添加 formControlName 但未在 View 中分配任何值。

虽然您有 NgModel 字段,但您在执行 API 调用时没有使用它,建议使用两种不同的表单方法。

所以尝试像下面这样更改复选框字段

在视图中:

<input type="checkbox" formControlName="Status"
       (change)="statusValueChange($event)"
       [ngClass]="{'is-invalid': submitted && addTermForm.get('Status').errors}"> 

在模板中:

private statusValueChange($event: any) {
  this.addTermForm.controls['status'].setValue($event.target.checked ? 'Y' : 'N');
}

快乐编码..:)