Qual è la differenza tra requirede ng-required(form validation)?
Qual è la differenza tra requirede ng-required(form validation)?
Risposte:
Gli elementi del modulo AngularJS cercano l' requiredattributo per eseguire le funzioni di convalida. ng-requiredti consente di impostare l' requiredattributo in base a un test booleano (ad esempio, richiede solo il campo B - ad esempio un numero di studente - se il campo A ha un certo valore - se hai selezionato "studente" come scelta )
Ad esempio, <input required>e <input ng-required="true">sono essenzialmente la stessa cosa
Se ti stai chiedendo perché sia così (e non solo make <input required="true">o <input required="false">), è dovuto alle limitazioni dell'HTML - l' requiredattributo non ha alcun valore associato - la sua semplice presenza significa (secondo gli standard HTML) che l'elemento è richiesto - quindi angolare ha bisogno di un modo per impostare / disinserire il valore richiesto ( required="false"sarebbe HTML non valido)
<form method="post" action="/foo" novalidate>. Ancora una volta, questo è un attributo html5, non correlato a angularJS.
ng-requiredpunta a una variabile ambito / controller, Angular lo controlla per le modifiche e imposta l'attributo richiesto di conseguenza. Mentre nel caso del semplice requiredattributo HTML non hai quel tipo di flessibilità. No? E mentre siamo sullo stesso argomento, che dire ng-attr-required? È esattamente lo stesso di ng-required?
Vorrei fare un addon per la risposta di Tiago :
Supponiamo che stai nascondendo l'elemento usando ng-showe aggiungendo un requiredattributo sullo stesso:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
genererà un errore simile a:
Un controllo modulo non valido con nome = '' non è attivabile
Questo perché non è possibile imporre la requiredconvalida sugli hiddenelementi. L'utilizzo ng-requiredsemplifica l' applicazione condizionale della convalida richiesta, il che è semplicemente fantastico !!
ng-ifinvece di ng-show/ ng-hideper eludere quel potenziale problema.
L' attributo HTML required="required" è una dichiarazione che indica al browser che questo campo è obbligatorio per rendere valido il modulo. ( required="required"è il modulo XHTML, solo usando requiredè equivalente)
L' attributo Angular ng-required="yourCondition" significa 'isRequired (yourCondition)' e imposta l'attributo HTML dinamicamente per te a seconda delle tue condizioni.
Si noti inoltre che la versione HTML è fonte di confusione , è non è possibile scrivere qualcosa di simile condizionale required="true"o required="false", solo la presenza delle materie degli attributi (mezzi presenti vero)! Qui è dove Angular ti aiuta ng-required.