¿Cuál es la diferencia entre requiredy ng-required(validación de formulario)?
¿Cuál es la diferencia entre requiredy ng-required(validación de formulario)?
Respuestas:
Los elementos de formulario AngularJS buscan el requiredatributo para realizar funciones de validación. ng-requiredle permite establecer el requiredatributo en función de una prueba booleana (por ejemplo, solo requiere el campo B, por ejemplo, un número de estudiante , si el campo A tiene un cierto valor, si seleccionó "estudiante" como opción )
Como ejemplo, <input required>y <input ng-required="true">son esencialmente lo mismo
Si se pregunta por qué es así (y no solo make <input required="true">o <input required="false">), se debe a las limitaciones de HTML: el requiredatributo no tiene ningún valor asociado; su mera presencia significa (según los estándares HTML) que el elemento es necesario. entonces angular necesita una forma de establecer / desarmar el valor requerido ( required="false"sería HTML no válido)
<form method="post" action="/foo" novalidate>. Nuevamente, este es un atributo html5, no relacionado con angularJS.
ng-requiredapunta a una variable de alcance / controlador, Angular la monitorea en busca de cambios y establece el atributo requerido en consecuencia. Mientras que en el caso del requiredatributo HTML simple no tienes ese tipo de flexibilidad. ¿No? Y mientras estamos en el mismo tema, ¿qué pasa ng-attr-required? ¿Es exactamente lo mismo que ng-required?
Me gustaría hacer un complemento para la respuesta de tiago :
Suponga que está ocultando un elemento usando ng-showy agregando un requiredatributo en el mismo:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
arrojará un error algo como:
Un control de formulario no válido con nombre = '' no es enfocable
Esto se debe a que simplemente no puede imponer la requiredvalidación a los hiddenelementos. ¡El uso ng-requiredfacilita la aplicación condicional de la validación requerida, que es simplemente increíble!
ng-iflugar de ng-show/ ng-hidepara esquivar ese problema potencial.
El atributo HTML required="required" es una declaración que le dice al navegador que este campo es obligatorio para que el formulario sea válido. ( required="required"es la forma XHTML, solo usar requiredes equivalente)
El atributo Angular ng-required="yourCondition" significa 'isRequired (yourCondition)' y establece el atributo HTML dinámicamente para usted según su condición.
También tenga en cuenta que la versión HTML es confuso , es que no es posible escribir algo como condicional required="true"o required="false", sólo la presencia de los asuntos de atributos (medios actuales cierto)! Aquí es donde Angular te ayuda ng-required.