Qual è la differenza tra required
e ng-required
(validazione del modulo)?
Gli elementi del modulo AngularJS cercano l’attributo required
per eseguire le funzioni di convalida. ng-required
consente di impostare l’attributo required
base a un test booleano (ad esempio, richiede solo il campo B – ad esempio, il numero di uno studente – se il campo A ha un determinato valore – se hai selezionato “studente” come scelta )
Ad esempio, e
sono essenzialmente la stessa cosa
Se ti stai chiedendo perché è così, (e non solo fai o
), è dovuto alle limitazioni dell’HTML – l’attributo
required
non ha un valore associato – la sua semplice presenza significa (come per gli standard HTML) che l’elemento è richiesto – così angular ha bisogno di un modo per impostare / annullare il valore required="false"
( required="false"
sarebbe HTML non valido)
Vorrei fare un addon per la risposta di tiago :
Supponiamo che tu stia nascondendo un elemento usando ng-show
e aggiungendo un attributo required
sullo stesso:
genererà un errore simile a:
Un controllo di modulo non valido con nome = ” non è selezionabile
Questo perché non è ansible imporre la convalida required
sugli elementi hidden
. L’uso di ng-required
facilita l’ applicazione condizionale della convalida richiesta, il che è semplicemente fantastico !!
L’ attributo HTML required="required"
è una dichiarazione che indica al browser che questo campo è necessario affinché il modulo sia valido. ( required="required"
è il modulo XHTML, solo usando required
è equivalente)
L’ attributo Angular ng-required="yourCondition"
significa ‘isRequired (yourCondition)’ e imposta l’attributo HTML in modo dinamico per te in base alle tue condizioni.
Si noti inoltre che la versione HTML è confusa , non è ansible scrivere qualcosa di condizionale come required="true"
o required="false"
, solo la presenza dell’attributo è importante (presente significa vero)! Qui è dove Angular ti aiuta con ng-required
.