281 votes

Quelle est la différence entre required et ng-required ?

Quelle est la différence entre required y ng-required (validation du formulaire) ?

425voto

Tiago Roldão Points 4567

Les éléments de formulaire AngularJS recherchent l'élément required pour exécuter des fonctions de validation. ng-required vous permet de définir le required en fonction d'un test booléen (par exemple, ne demander que le champ B - disons, un numéro d'étudiant - si le champ A a une certaine valeur - si vous avez sélectionné "étudiant" comme choix )

A titre d'exemple, <input required> y <input ng-required="true"> sont essentiellement la même chose

Si vous vous demandez pourquoi c'est de cette façon, (et pas seulement faire <input required="true"> o <input required="false"> ), c'est en raison des limites du HTML - le format required n'a pas de valeur associée - sa simple présence signifie (conformément aux normes HTML) que l'élément est requis - angular a donc besoin d'un moyen de définir/annuler la valeur requise ( required="false" serait un HTML invalide)

78voto

Je voudrais créer un addon pour réponse de tiago :

Supposons que vous cachiez un élément en utilisant ng-show et l'ajout d'un required sur la même chose :

<div ng-show="false">
    <input required name="something" ng-model="name"/>
</div>

provoquera une erreur du type :

Un contrôle de formulaire invalide avec name='' n'est pas focalisable

C'est parce que vous ne pouvez tout simplement pas imposer required validation sur hidden éléments. Utilisation de ng-required permet de faciliter appliquer sous condition la validation requise, ce qui est tout simplement génial !

18voto

Christophe Roussy Points 2347

En Attribut HTML required="required" est une déclaration indiquant au navigateur que ce champ est obligatoire pour que le formulaire soit valide. ( required="required" est la forme XHTML, il suffit d'utiliser required est équivalent)

En Attribut Angular ng-required="yourCondition" signifie "isRequired(yourCondition)" et définit l'attribut HTML dynamiquement pour vous en fonction de votre état.

Notez également que la version HTML prête à confusion c'est no Il est possible d'écrire quelque chose de conditionnel comme required="true" o required="false" , seule la présence de l'attribut compte (présent signifie vrai) ! C'est là qu'Angular vous aide avec ng-required .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X