Проверьте, не является ли один из formControl грязным или измененным - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу проверить, не изменилось ли одно из formControlName моей formGroup. Так как у меня есть много formControl, я хочу найти умный способ контролировать, если один из них изменен.

<div>
    <label class="font-weight-bold">{{ 'questionario_codiceDomanda' | translate }}</label>

    <input formControlName="codDomanda" class="questionario-input-border form-control" type="text"
        (keyup)="changeCodDomanda($event)">
</div>
<!-- testo domanda -->
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5 form-group">
    <label class="font-weight-bold">{{ 'questionario_testo' | translate }}</label>

    <textarea formControlName="testo" class="questionario-input-border form-control" type="text" rows="2" cols="90"
        (keyup)="changeTesto($event)"></textarea>
</div>
<!--help domanda-->
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5 form-group">
    <label class="font-weight-bold">{{ 'questionario_help' | translate }}</label>
    <textarea formControlName="help" class="questionario-input-border form-control" type="text" rows="2"
        cols="90"></textarea>
</div>
</div>

Я пытался с ngOnChanges, но он не работает. Какой лучший способ проверить?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Подписаться на form.valueChanges

this.form.valueChanges.subscribe(value=>{
    //your logic when any one of form control is dirty
})

Stackblitz: https://stackblitz.com/edit/angular-reactive-forms-a5njgf

0 голосов
/ 14 апреля 2020

Попробуйте это

<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5 form-group">
    <label class="font-weight-bold">{{ 'questionario_help' | translate }}</label>
    <textarea formControlName="help" class="questionario-input-border form-control" type="text" rows="2"
        cols="90"></textarea>
</div>

<span class="help-block error-message" *ngIf="userDataForm.get('help').invalid && userDataForm.get('help').dirty">Error
    in Help</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...