¿Cuál es la diferencia entre requiredy ng-required(validación de formulario)?
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 delrequiredatributo HTML simple no tienes ese tipo de flexibilidad. ¿No? Y mientras estamos en el mismo tema, ¿qué pasang-attr-required? ¿Es exactamente lo mismo queng-required?Me gustaría hacer un complemento para la respuesta de tiago :
Suponga que está ocultando un elemento usando
ng-showy agregando unrequiredatributo en el mismo:arrojará un error algo como:
Esto se debe a que simplemente no puede imponer la
requiredvalidación a loshiddenelementos. ¡El usong-requiredfacilita la aplicación condicional de la validación requerida, que es simplemente increíble!fuente
ng-iflugar deng-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 usarrequiredes 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"orequired="false", sólo la presencia de los asuntos de atributos (medios actuales cierto)! Aquí es donde Angular te ayudang-required.fuente