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>
Vous devez vous connecter pour publier un commentaire.
vous pouvez faire
this.rotationForm.get('comments').value
cela vous donnera la valeur de la formControl et puis vous pouvez vérifier sur la duréeAvez un oeil de haut niveau pour la mise en œuvre et d'utiliser quelques étapes:
StackBlitz URL: https://stackblitz.com/edit/angular-kqz4nw
Ayant validation à la FormGroup niveau dans le composant
J'ai été capable d'arracher l'e-mail de la valeur de ce genre dans ma fonction:
email = ce.loginForm.de la valeur.e-mail
A fonctionné pour moi - espérons qu'il vous aide.