Estoy evaluando AngularJS y hasta ahora estoy muy entusiasmado con ello. Pero hay algo que falta en la parte frontal de validación: las opciones disponibles, tales como la built-in mechanisms y la AngularUI initiative, implementan validadores través de directivas y, como tal, todos los validación debe ser declarado en la vista:Estrategias de validación con AngularJS
<form ng-controller="SomeController">
<!-- Notice the 'required' attribute directive below: -->
<input type="text" ng-model="user.name" name="uName" required />
</form>
En este ejemplo, la vista define que se requiere user.name
. Es como decir que la vista define la forma correcta del modelo. ¿No es un poco al revés? ¿No debería la vista reflejar los estados, incluidos los estados de error cuando es el caso?
¿No soy fiel? Me pregunto si es posible aplicar validadores en el controlador , señalizar los datos del modelo como válidos/inválidos y actualizar la vista en consecuencia (pintar los controles de formulario con rojo, mostrar mensajes de error, borrar errores previos, etc.). Asumo que AngularJS es lo suficientemente potente para esto, pero en los documentos y muestras hasta el momento, simplemente no he visto nada como lo he descrito anteriormente. ¡Gracias!
'required' es un atributo HTML5. http://html5doctor.com/html5-forms-introduction-and-new-attributes/ También puedes establecer los atributos 'input'' type' en cosas como 'email, tel, date, url, number' y validarán en consecuencia. –
Además, nunca he usado AngularUI Validate, acabo de utilizar la validación vertical de AngularJS con HTML5 y funcionó perfectamente bien. AngularUI Validate es para agregar validación de expresiones personalizadas a un campo. –