Как очистить значение моего текстового поля Angular 2 ng-if, чтобы оно не передавалось
Прямо сейчас у меня есть две текстовые области, которые появляются условно через директиву *ngIf, основанную на пользовательском выборе, введенном ранее в предыдущем поле выбора. Он прекрасно работает, за исключением того факта, что если они вернутся назад и изменят значение поля выбора, текстовые области переключатся соответствующим образом, но предыдущее значение текстовой области не будет стерто, а просто скрыто от просмотра.
Я попытался добавить функцию, определенную в привязке моего компонента, к событию onchange, чтобы сбросить значение текстового поля, скрытого от просмотра, в пустую строку, но безрезультатно. Данные все еще сохраняются
<ss-multiselect-dropdown (onchange)=" resetdcn()" id="substatus"
*ngIf="ddlCorrespondenceStatus == 'M'" class="report-multiselect"
[options]="ddlCorrespondenceSubStatuses"
[settings]="genericSearchMSDropdownSettings"
[texts]="statusMSDropdownTextSettings"
[(ngModel)]="selectedCorrespondenceSubStatuses"
(ngModelChange)="handleStatusSelection($event)">
</ss-multiselect-dropdown>
<ss-multiselect-dropdown (onchange)=" resetdcn()"
*ngIf="ddlCorrespondenceStatus == 'G'" class="report-multiselect"
[options]="ddlStatus"
[settings]="genericSearchMSDropdownSettings"
[texts]="statusMSDropdownTextSettings"
[(ngModel)]="selectedStatuses"
(ngModelChange)="handleStatusSelection($event)">
</ss-multiselect-dropdown>
</div>
</td>
<td>
<textarea (ngModelChange)="handleCorrespondenceDcnSelection($event)"
*ngIf="ddlCorrespondenceStatus == 'M'" id="txtDcn"name="txtDcn"
type="text"
placeholder="Correspondondence DCN " class="form-control input-md"
[(ngModel)]="txtCorrespondenceDcn"></textarea>
<textarea (ngModelChange)="handleClaimDcnSelection($event)"
*ngIf="ddlCorrespondenceStatus == 'G'" id="txtDcn" name="txtDcn"
type="text" placeholder="Claim DCN " class="form-control input-md"
[(ngModel)]="txtDcn"></textarea>
2 ответа
Проблема заключалась в том, что функция вызывалась неправильно, а не сама функция. Это должно быть (ngModelChange) ="resetdcn()"
Внутри resetdcn()
просто установите значения модели textarea на null
, Они связаны с данными, поэтому вам не нужно ничего делать вне этого.
public resetdcn(){
// ...
this.txtCorrespondenceDcn = null;
this.txtDcn = null;
}