web-dev-qa-db-fra.com

Qu'est-ce que updateValueAndValidity

Ces documents indiquent ce qui suit:

Si emitEvent est true, cette modification entraînera un événement valueChanges sur le FormControl à émettre. La valeur par défaut est true (car elle tombe Jusqu'à updateValueAndValidity).

Quelle est cette updateValueAndValidity?

11

Vous pouvez vous abonner aux modifications de valeur d'un contrôle ou de l'ensemble du formulaire. 

updateValueAndValidity vous permet de modifier la valeur d'un ou de plusieurs contrôles de formulaire et le drapeau vous permet de spécifier si vous souhaitez que cela émette la valeur aux abonnés valueChanges.

10
Günter Zöchbauer

Je suis d'accord avec la réponse ci-dessus. Juste pour ajouter, toutes vos modifications liées au contrôle ne seront reflétées que si vous mettez cette déclaration i.e 

  updateValueAndValidity () 

1
Alok Ranjan

Le code source peut être utile pour clarifier ce qu'il fait:

https://github.com/angular/angular/blob/master/packages/forms/src/model.ts

Actuellement, il semble procéder comme suit (cette liste est basée sur les noms de méthodes):

  • 'Définir le statut initial' - ce qui rend .status 'VALID' sauf si TOUTES les commandes sont désactivées, auquel cas le rend 'DISABLED'
  • 'Valeur de mise à jour' - cela semble définir .value si le contrôle est activé, ou l'effacer s'il est désactivé.
  • 'Runs validator' - met à jour tout l'objet d'erreur. Ainsi, les erreurs personnalisées seraient effacées si vous en définissiez.
  • 'Annuler les abonnements' - arrête tous les validateurs asynchrones en cours d'exécution à ce moment
  • Evénement 'Emit' - (si emitEvent! = False dans les options). Il ne s’agit que des événements de forme normale value et status.
  • Met à jour le parent avec les mêmes règles - à moins que onlySelf soit défini.

Note: ça ne va pas bas dans l’arbre, seulement en haut.

Je souhaite qu'ils mettent quelque chose comme ceci dans les docs . Ils disent actuellement «Recalcule la valeur et le statut de validation du contrôle». ce qui n'est pas particulièrement utile.

0
Simon_Weaver