inputDirectiva AngularJS


Ejemplo

Un campo de entrada con enlace de datos:

<input ng-model="myInput">

<p>The value of the input field is:</p>
<h1>{{myInput}}</h1>

Definición y uso

AngularJS modifica el comportamiento predeterminado de los <input>elementos, pero solo si el ng-modelatributo está presente.

Proporcionan vinculación de datos, lo que significa que son parte del modelo AngularJS y se pueden consultar y actualizar tanto en las funciones de AngularJS como en el DOM.

Proporcionan validación. Ejemplo: un <input>elemento con un requiredatributo, tiene el $validestado establecido falsemientras esté vacío.

También proporcionan control estatal. AngularJS mantiene el estado actual de todos los elementos de entrada.

Los campos de entrada tienen los siguientes estados:

  • $untouched El campo aún no ha sido tocado.
  • $touched El campo ha sido tocado
  • $pristineEl campo aún no ha sido modificado.
  • $dirty El campo ha sido modificado.
  • $invalid El contenido del campo no es válido.
  • $valid El contenido del campo es válido.

El valor de cada estado representa un valor booleano y es true o false.


Sintaxis

<input ng-model="name">

Se hace referencia a los elementos de entrada mediante el valor del ng-modelatributo.



Clases CSS

<input>Los elementos dentro de una aplicación AngularJS reciben ciertas clases . Estas clases se pueden usar para diseñar elementos de entrada según su estado.

Se añaden las siguientes clases:

  • ng-untouched El campo aún no ha sido tocado.
  • ng-touched El campo ha sido tocado
  • ng-pristine El campo aún no ha sido modificado.
  • ng-dirty El campo ha sido modificado.
  • ng-valid El contenido del campo es válido.
  • ng-invalid El contenido del campo no es válido.
  • ng-valid-keyUna clave para cada validación. Ejemplo: ng-valid-required, útil cuando hay más de una cosa que se debe validar
  • ng-invalid-key Ejemplo: ng-invalid-required

Las clases se eliminan si el valor que representan es false.

Ejemplo

Aplicar estilos para elementos de entrada válidos y no válidos, utilizando CSS estándar:

<style>
input.ng-invalid {
    background-color: pink;
}
input.ng-valid {
    background-color: lightgreen;
}
</style>