Was ist der Unterschied zwischen required
und ng-required
(Formularvalidierung)?
AngularJS-Formularelemente suchen nach dem required
Attribut, um Validierungsfunktionen auszuführen. ng-required
Mit dieser Option können Sie das required
Attribut in Abhängigkeit von einem Booleschen Test festlegen (beispielsweise benötigen Sie nur Feld B - beispielsweise eine Schülernummer -, wenn das Feld A einen bestimmten Wert hat - wenn Sie "Schüler" als Auswahl ausgewählt haben. )
Als Beispiel <input required>
und <input ng-required="true">
sind im Wesentlichen das gleiche
Wenn Sie sich fragen, warum dies so ist (und nicht nur make <input required="true">
oder <input required="false">
), liegt dies an den Einschränkungen von HTML - das required
Attribut hat keinen zugeordneten Wert - seine bloße Anwesenheit bedeutet (gemäß HTML-Standards), dass das Element erforderlich ist - Winkel benötigt also eine Möglichkeit, den erforderlichen Wert zu setzen / zu deaktivieren ( required="false"
wäre ungültiges HTML)
<form method="post" action="/foo" novalidate>
. Auch dies ist ein HTML5-Attribut, das nicht mit angleJS zusammenhängt.ng-required
Angular , wenn es auf eine Scope / Controller-Variable zeigt, diese auf Änderungen überwacht und das erforderliche Attribut entsprechend festlegt. Im Fall des einfachen HTML-required
Attributs haben Sie diese Flexibilität nicht. Nein? Und während wir uns mit demselben Thema befassen, was ist dannng-attr-required
? Ist es genau das gleiche wieng-required
?Ich möchte ein Addon für Tiagos Antwort erstellen :
Angenommen, Sie verstecken ein Element,
ng-show
indem Sie einrequired
Attribut verwenden und hinzufügen :wird einen Fehler auslösen wie:
Dies liegt daran, dass Sie Elemente einfach nicht
required
validieren könnenhidden
. Die Verwendungng-required
erleichtert die bedingte Anwendung der erforderlichen Validierung, was einfach fantastisch ist !!quelle
ng-if
anstelle vonng-show
/ verwendenng-hide
, um es zu umgehen.Das HTML-Attribut
required="required"
ist eine Anweisung, die dem Browser mitteilt, dass dieses Feld erforderlich ist, damit das Formular gültig ist. (required="required"
ist das XHTML-Formular, nur die Verwendungrequired
ist äquivalent)Das Angular-Attribut
ng-required="yourCondition"
bedeutet "isRequired (yourCondition)" und legt das HTML-Attribut abhängig von Ihrer Bedingung dynamisch für Sie fest.Beachten Sie auch, dass die HTML-Version verwirrend ist , es nicht möglich ist, etwas Bedingtes wie
required="true"
oder zu schreibenrequired="false"
, nur das Vorhandensein des Attributs ist wichtig (vorhanden bedeutet wahr)! Hier hilft Ihnen Angularng-required
.quelle