Comment ajouter de nouvelles FormGroup ou FormControl pour former
J'ai le texte suivant form
Angulaire créé avec FormBuilder
:
constructor(private fb: FormBuilder) {
this.myForm = fb.group({
'name': ['', [Validators.required],
'surname': ['', [Validators.required],
'email': ['', [validateEmail]],
'address': fb.group({
'street': [''],
'housenumber': [''],
'postcode': ['']
}, { validator: fullAddressValidator })
});
}
Existe un moyen de faire ajouter de nouveaux champs, comme FormControl
ou de nouveaux FormGroup
à myForm
?
Je veux dire, si je veux ajouter de nouveaux champs à la demande ou en fonction de certaines conditions, comment ajouter des éléments à la même forme qui est créé la première fois dans l' constructor
?
Cela pourrait également aider: stackoverflow.com/questions/55334283/...
OriginalL'auteur smartmouse | 2017-01-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
addControl
méthode de FormGroup classe comme par la documentationDe sorte que vous pouvez faire en tant que ci-dessous :
comment puis-je ajouter un nouveau formgroup à l'intérieur d'un formgroup
OriginalL'auteur ranakrunal9
À ajouter sur ce que @ranakrunal9 dit.
Si vous souhaitez utiliser validateurs avec addControl procédez de la manière suivante:
Il suffit de ne pas oublier d'ajouter les éléments suivants à l'importation
Référence à addControl: https://angular.io/api/forms/FormGroup#addControl
Référence à FormControl: https://angular.io/api/forms/FormControl
OriginalL'auteur Stas Sorokin
À mon avis, vous pouvez simplement utiliser une variable intermédiaire à cette fin. Jetez un oeil à l'exemple suivant:
Aussi, il aurait une meilleure idée de transférer une forme d'initiation dans ngOnInit crochet, au lieu de composant constructeur.
Boris Siscanu: pouvez-vous me dire pourquoi il est préférable de lancer la forme dans ngOnInit au lieu de constructeur?
Angulaire de la documentation dit de le lancer dans le Composant constructeur: angulaire.io/guide/réactif-formes#introduction-à-formbuilder
OriginalL'auteur Boris Siscanu