¡Esta es una revisión vieja del documento!
Cada formulario que creamos en una página HTML genera un objeto de la clase FormController en el $scope
de nuestro controlador. Este objeto contiene el estado del formulario con información relativa a :
Veamos ahora un diagrama UML con la clase FormController
_Error
y _Validaciones
no son nombres que existan como tal en AngularJS pero los he creado para representar las forma de las propiedades FormController.$error
y NgModelController.$error
. Es decir que tienen esa información pero en ningún sitio de la documentación de AngularJS aparecen esos 2 nombres.¿Que vamos a conseguir con este pequeño monstruo de clase enrevesadas? Como ya hemos dicho, poder saber en todo momento el estado del formulario y de todos sus campos.
En este tema vamos a poner ejemplo siguiendo el siguiente formulario:
<form name="miFormulario" novalidate> Nombre:<input type="text" ng-model="model.nombre" name="nombre" required ng-maxlength="10"> <br> Correo eletronico:<input type="email" ng-model="model.email" name="email"> <br> <input type="checkbox" ng-model="model.aceptaTerminosCondiciones" name="aceptaTerminosCondiciones">Acepta los Terminos y Condiciones </form>
Ya iremos explicando los atributos a lo largo de la unidad.
Lo primero que podemos saber del formulario es si algo se ha modificado, para ello AngularJS dispone de las propiedades:
$pristine
: Vale true
si el formulario aun no ha sido modificado por el usuario sino vale false
.$dirty
: Vale true
si el formulario ya ha sido modificado por el usuario sino vale false
.
Como podemos imaginar $pristine
siempre vale lo contrario de $dirty
y viceversa.
Esta propiedad se puede aplicar tanto a nivel de formulario como a nivel de un campo concreto.