Comment obtenir la valeur d'un FormControl dans Angular4

J'ai une certaine expérience dans Angular4, mais j'ai juste hérité d'un morceau de code qui utilise FormControls, et je ne sais pas comment travailler avec eux. Je suis en train d'ouvrir un commentaires textarea qui est nécessaire si la valeur de isRegulatoryAuditRequired est égal à false. J'ai le champ de travail, mais j'ai besoin d'afficher le message "Commentaires nécessaires" si la valeur est fausse et que le formulaire est soumis. Voici mon code HTML, avec deux boutons radio, un textarea et une étiquette pour le message:

<div class="btnWrapper">
              <div class="leftBtn">
                <span class="col-xs-12 no-padding">
                  <label>
                    <input type="radio" id="radio1" class="app-input-radio" name="isRegulatoryAuditRequired" [value]="true"
                           [checked]="isRegulatoryAuditRequired==true" formControlName="isRegulatoryAuditRequired" />
                    <span class="app-input-radio pull-left"></span>
                    <span class="plx5 pull-left radioText ">Yes</span>
                  </label>
                </span>
              </div>
              <br />
              <div class="rightBtn">
                <span class="col-xs-12 no-padding">
                  <label>
                    <input type="radio" id="radio2" class="app-input-radio" name="isRegulatoryAuditRequired" [value]="false"
                           [checked]="isRegulatoryAuditRequired==false" formControlName="isRegulatoryAuditRequired" />
                    <span class="app-input-radio pull-left"></span>
                    <span class="plx5 pull-left radioText ">No</span>
                  </label>
                </span>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="row mbx20">
        <div class="col-sm-4">
          <div>
            <label>Why is the regulatory audit being performed or provide additional comment?</label>
            <div>
              <textarea id="comments" name="Text1" [required]="isRegulatoryAuditRequired==false" cols="100" rows="2" formControlName="comments"></textarea>
              <label *ngIf="commentsRequired('comments')" style="color:red;font-weight:bold">Comments required</label>

            </div>

J'ai besoin pour évaluer la valeur de la 'isRegulatoryAuditRequired" et "commentaires" FormControls pour voir si je doit afficher les Commentaires nécessaires message. Voici la méthode que je suis en train d'utiliser, mais il ne fonctionne pas:

commentsRequired(controlName: string) {
        const control = (<FormControl>this.rotationForm.controls[controlName]);
        const isRegulatoryAuditRequired = (<FormControl>this.rotationForm.controls['isRegulatoryAuditRequired']);
if (isRegulatoryAuditRequired.value === false && control.value === '' && this.formSubmitAttempt) {
            return true;
        } else {
            return false;
        }
    }

La valeur de 'isRegulatoryAuditRequired.la valeur' et 'contrôle.la valeur d'impression " à la console, null, donc n'affiche pas le message. Comment puis-je récupérer ces valeurs? Toute aide sera appréciée.

  • Définissez-vous quelque part dans votre modèle <div [formGroup]="rotationForm">Form content here</div> ?
  • Oui <form [formGroup]="rotationForm" (ngSubmit)="enregistrer(rotationForm.valeur,rotationForm.valide)" novalidate>
InformationsquelleAutor Pismotality | 2018-04-01