Получение ошибки при отправке статуса проверки с нулевым значением, хотя я устанавливаю значения с помощью ngModel в html-файле

#angular #validation #ngmodel

#angular #проверка #ngmodel

Вопрос:

Моя таблица sql состоит из четырех столбцов. я пытаюсь проверить форму и добавить запись с помощью службы api, и код выглядит следующим образом. я не хочу проверять флажок статуса. Я хочу отправлять значение флажка только как «Y», если установлен флажок, и «N», если флажок снят.

В то время как в текущем коде мое значение статуса будет null…do нам нужно связать 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 amp;amp; addTermForm.get('Status').errors}">
                    
            
                    <div *ngIf="submitted amp;amp;amp;amp; addTermForm.controls.status.errors" class="text-danger">
                    <div *ngIf="addTermForm.controls.status.errors">
                      Status is required
                    </div>
                    </div>
           </div>          
                    <br>
                    <br>
                                    
                  
                  </form>

 

Комментарии:

1. какое значение вы получаете в этой строке console.log(this.addTermForm.value);

2. Это значение: dealer_id: «» имя правила: «uuuuuuu» тип: «S»

3. Значение состояния Y или N Не отображается в console.log (this.addTermForm.value);

Ответ №1:

Вы добавляете formControlName , formGroup но не присваиваете никакого значения в представлении.

Хотя у вас есть NgModel поле, но вы не используете его при выполнении вызова API, и рекомендуется использовать два разных подхода к форме.

Поэтому попробуйте изменить поле флажка, как показано ниже

В представлении:

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

В шаблоне:

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

Счастливого кодирования .. 🙂