Как удалить значение с помощью `ngIf`?

У меня есть флажок, который я пытаюсь зафиксировать дату операции. Цель состоит в том, чтобы отобразить дату операции, если пользователи нажимают "да" (радиокнопка), и ничего не отображать, если они нажимают "нет". Я могу сделать это с помощью ngIf, Однако проблема заключается в том, что пользователи сначала нажимают "да", а затем "нет", система по-прежнему сохраняет surgeryDate, Я не мог найти способ удалить это, чтобы он не пошел на сервер, если пользователи делают это.

Вот мой код:

<div class="custom-control custom-radio">
    <input id="q2No" name="q2" type="radio" class="custom-control-input" value="no" [(ngModel)]="screen.q2" #q2="ngModel" required>
    <label class="custom-control-label" for="q2No">NO</label>
</div>

<div class="custom-control custom-radio">
    <input id="q2Yes" name="q2" type="radio" class="custom-control-input" value="yes" [(ngModel)]="screen.q2" #q2="ngModel" required>
    <label class="custom-control-label" for="q2Yes">YES</label>
</div>

<div class="mb-3" *ngIf="screen.q2 === 'yes'">
    <label for="q2SurgeryDate">Surgery Date</label>
    <input class="form-control" type="text" bsDatepicker [bsConfig]="bsConfig" placeholder="Surgery Date" name="q2SurgeryDate" [(ngModel)]="screen.q2SurgeryDate" #q2SurgeryDate="ngModel" required>
</div>

<div class="mb-3" *ngIf="screen.q2 === 'no'">
     <input class="form-control" type="text" bsDatepicker [bsConfig]="bsConfig" placeholder="Surgery Date" name="q2SurgeryDate">
</div>

1 ответ

Решение

Добавьте (change)="screen.q2SurgeryDate=''" к кнопке без кнопки. Затем, когда вы нажимаете Нет, значение удаляется.

<div class="custom-control custom-radio">
    <input id="q2No" name="q2" type="radio" class="custom-control-input" value="no" [(ngModel)]="screen.q2" #q2="ngModel" (change)="screen.q2SurgeryDate=''" required>
    <label class="custom-control-label" for="q2No">NO</label>
</div>

<div class="custom-control custom-radio">
    <input id="q2Yes" name="q2" type="radio" class="custom-control-input" value="yes" [(ngModel)]="screen.q2" #q2="ngModel" required>
    <label class="custom-control-label" for="q2Yes">YES</label>
</div>

<div class="mb-3" *ngIf="screen.q2 === 'yes'">
    <label for="q2SurgeryDate">Surgery Date</label>
    <input class="form-control" type="text" bsDatepicker [bsConfig]="bsConfig" placeholder="Surgery Date" name="q2SurgeryDate" [(ngModel)]="screen.q2SurgeryDate" #q2SurgeryDate="ngModel" required>
</div>

<div class="mb-3" *ngIf="screen.q2 === 'no'">
    <input class="form-control" type="text" bsDatepicker [bsConfig]="bsConfig" placeholder="Surgery Date" name="q2SurgeryDate">
</div>
Другие вопросы по тегам