Méthode pour définir la valeur et de la mise à jour de validité du contrôle de formulaire
Je me demande si il existe une méthode pour définir la valeur et de la mise à jour de validité d'un contrôle d'un formulaire. Le suivant:
this.updateForm = this._formBuilder.group({
user: ['',Validators.required]
});
J'ai quelques directive sur les déclencheurs de changement, qui déclenche la suivante:
changeUserSelection(value){
this.updateForm.controls['user'].value = value //doesnt trigger validation?
}
Et je me demande comment je peux définir la valeur, et de déclencher la validation de ce champ. Faire cela à ma façon, à ne pas déclencher la validation.
Grâce
OriginalL'auteur uksz | 2016-03-31
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser le
updateValue
plutôt la méthode:Pour une raison quelconque, mon TS ne marche pas voir, et j'obtiens une erreur: la Propriété 'updateValue" n'existe pas sur le type "AbstractControl'.
Oui parce que la méthode est situé dans le
Control
classe pas dans laAbstractControl
.Control
s'étendAbstractControl
. Voir github.com/angular/angular/blob/master/modules/angular2/src/...attendre. mais quand j'ai créer un formulaire à l'aide de formBuilder, il retourne AbstractControls...droit?
Oui, mais vous essayez de définir la valeur d'un contrôle de saisie dans le formulaire. Dans ce cas, c'est un Contrôle, à savoir l'
this.updateForm.controls['user']
.OriginalL'auteur Thierry Templier
Mise à jour Angular2 final
Comme par angular2 de la sortie de la version finale
updateValue
a été modifié poursetValue
ainsi, la nouvelle syntaxe devrait être comme ceci
updateValueAndValidatity
besoin d'être appelée pour déclencher le programme de validation des fonctions.Notez également que
setValue
ne sera pas de mise à jour de la vierge de statut de la commande.markAsDirty
besoin d'être appelée explicitement.ouais exactement @YuanfeiZhu
OriginalL'auteur Pardeep Jain
Vous pouvez également essayer de patchValue
OriginalL'auteur Mackelito