¿Cuál es la diferencia entre required y ng-required?

¿Cuál es la diferencia entre required y ng-required (validación de formulario)?

Los elementos de forma AngularJS buscan el atributo required para realizar funciones de validación. ng-required permite establecer el atributo required dependiendo 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, y son esencialmente lo mismo

Si se pregunta por qué es así (y no solo hace o ), se debe a las limitaciones de HTML – el atributo required no tiene ningún valor asociado – su mera presencia significa (según los estándares HTML) que el elemento es obligatorio, por lo que angular necesita una forma de establecer / deshacer el valor required="false" ( required="false" sería HTML no válido)

Me gustaría hacer un complemento para la respuesta de tiago :

Supongamos que está ocultando elementos usando ng-show y agregando un atributo required en el mismo:

 

arrojará un error algo así como:

Un control de formulario no válido con name = ” no es enfocable

Esto es porque simplemente no puede imponer la validación required en elementos hidden . Usar ng-required hace que sea más fácil aplicar condicionalmente la validación requerida, ¡lo cual es simplemente increíble!

El atributo HTML required="required" es una statement que le dice al navegador que este campo es obligatorio para que el formulario sea válido. ( required="required" es el formulario XHTML, solo el uso required es equivalente)

El atributo angular ng-required="yourCondition" significa “isRequired (yourCondition)” y establece el atributo HTML de forma dinámica para usted, dependiendo de su condición.

También tenga en cuenta que la versión HTML es confusa , no es posible escribir algo condicional como required="true" o required="false" , solo importa la presencia del atributo (presente significa verdadero). Aquí es donde Angular te ayuda con ng-required .