Angulaire 2 - FormControl setValue 'onlySelf paramètre
Essayer de comprendre ce que le " onlySelf paramètre n'lors du passage à setValue.
this.form.get('name').setValue('', { onlySelf: true })
La documentation dit: "Si onlySelf est vrai, ce changement n'affecte que la validation de ce FormControl et pas son composant parent. La valeur par défaut est false."
Cependant j'ai du mal à comprendre cela. Encore assez nouveau à l'aide de Angulars' model driven formes.
OriginalL'auteur leepowell | 2016-09-20
Vous devez vous connecter pour publier un commentaire.
Angular2 par défaut va vérifier pour le contrôle de formulaire le formulaire ou la validité d'un groupe cascadingly jusqu'au niveau supérieur dès qu'il y a une mise à jour de tous les éléments de formulaire de valeur, à moins que vous dire non.
onlySelf
est l'outil pour vous aider à le faire.Dire que vous avez un
loginForm
qui a unusername
champ et unpassword
champ, les deux sont nécessaires, comme ceci:Après ce code,
this.loginForm.valid
esttrue
.Si vous définissez la valeur d'un contrôle à l'aide du paramètre par défaut (
onlySelf = false
), Angular2 permettra de mettre à jour le contrôle de la validité de la forme du groupe de validité. Par exemple, ceci:entraînera
Cependant, ce:
ne changera
passwordControl
's de validité que:OriginalL'auteur Harry Ninh
De mettre de cette façon, disons que vous avez un formulaire, appelé
mainForm
qui est valide. Il y a quatre commandes et tous les quatre ont une valeur. Maintenant, vous décidez de mettre à jour la valeur de l'un de vos commandes, disons que vous mettez à jour une certaine valeur incorrecte et que vous spécifiezonlySelf: true
. Si vous essayez d'appelerthis.mainForm.valid
, vous obtiendrez le résultat que votre formulaire est valide même si votre contrôle est pas valide, et il est invalide état ne devrait pas permettre le formulaire pour être soumis. Mais parce que les formes de propriété valide est de déclaration vrai, vous allez présenter les valeurs incohérentes à l'arrière-plan.Il peut être source de confusion pourquoi vous aurait cette propriété, mais il peut y avoir des occasions où vous ne voulez pas invalider la forme, car d'une valeur ou d'un contrôle. Probablement que vous avez quelques contrôles avancés sur le serveur et que vous voulez corriger la valeur sur le serveur ou vous pourrait dépendre d'une valeur de certains service web externe qui pourraient ne pas être disponibles à l'époque. Je suis sûr qu'il ya certain nombre de scénarios, mais c'est quelque chose de haut de ma tête.
OriginalL'auteur Husein Roncevic