Los últimos tutoriales de desarrollo web
 

AngularJS Directivas


AngularJS le permite extender HTML con nuevos atributos llamados directivas.

AngularJS tiene un conjunto de directivas incorporadas que ofrece funcionalidad a sus aplicaciones.

AngularJS también le permite definir sus propias directivas.


AngularJS Directivas

AngularJS directivas están extendidos atributos HTML con el prefijo ng- .

El ng-app Directiva inicializa una aplicación AngularJS.

El ng-init Directiva inicializa los datos de aplicación.

El ng-model directiva se une el valor de los controles HTML (input, select, textarea) para datos de aplicación.

Lee sobre todas las directivas AngularJS en nuestros AngularJS referencia Directiva .

Ejemplo

<div ng-app="" ng-init="firstName='John'">

<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>

</div>
Inténtalo tú mismo "

El ng-app directiva también dice AngularJS que el elemento <div> es el "dueño" de la aplicación AngularJS.


El enlace de datos

El {{ firstName }} expresión, en el ejemplo anterior, es un AngularJS expresión de enlace de datos.

vinculantes en AngularJS de datos se une AngularJS expresiones con los datos AngularJS.

{{ firstName }} está enlazado con ng-model="firstName" .

En el siguiente ejemplo, dos campos de texto están unidos entre sí con dos directivas ng-modelo:

Ejemplo

<div ng-app="" ng-init="quantity=1;price=5">

Quantity: <input type="number" ng-model="quantity">
Costs:    <input type="number" ng-model="price">

Total in dollar: {{ quantity * price }}

</div>
Inténtalo tú mismo "
Nota Usando ng-init no es muy común. Usted aprenderá cómo inicializar los datos en el capítulo sobre los controladores.

La repetición de elementos HTML

El ng-repeat Directiva repite un elemento HTML:

Ejemplo

<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <ul>
    <li ng-repeat="x in names">
      {{ x }}
    </li>
  </ul>
</div>
Inténtalo tú mismo "

El ng-repeat Directiva realidad clona elementos HTML una vez para cada elemento de una colección.

El ng-repeat directiva usada en una serie de objetos:

Ejemplo

<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">

<ul>
  <li ng-repeat="x in names">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>
Inténtalo tú mismo "
Nota AngularJS es perfecto para CRUD base de datos (Crear Leer Actualizar Borrar) aplicaciones.
Imagínese si estos objetos eran registros de una base de datos.

La Directiva ng-app

El ng-app directiva define el elemento raíz de una solicitud AngularJS.

El ng-app directiva de auto-arranque (inicializar automáticamente) la aplicación cuando se carga una página web.


La Directiva ng-init

El ng-init Directiva define los valores iniciales para una aplicación AngularJS.

Normalmente, no usará ng-init. Que va a utilizar un controlador o módulo en su lugar.

Va a aprender más acerca de los controladores y los módulos más tarde.


La Directiva ng-modelo

El ng-model directiva se une el valor de los controles HTML (input, select, textarea) para datos de aplicación.

El ng-model directiva también puede:

  • Proporcionar validación de tipo de datos de la aplicación (número, correo electrónico, es necesario).
  • Proporcionar el estado de los datos de aplicación (no válido, sucio, tocado, error).
  • Proporcionar clases CSS para elementos HTML.
  • elementos HTML se unen a los formularios HTML.

Lea más sobre el ng-model directiva en el siguiente capítulo.


Crear nuevas directivas

Además de todas las directivas AngularJS incorporados, puede crear sus propias directivas.

Nuevas directivas se crean mediante la .directive función.

Para invocar la nueva directiva, hacer que un elemento HTML con el mismo nombre de la etiqueta como la nueva directiva.

Al escribir el nombre de una Directiva, debe utilizar un nombre del caso de camellos, w3TestDirective , pero cuando la invoca, debe utilizar - nombre separado, w3-test-directive :

Ejemplo

<body ng-app="myApp">

<w3-test-directive></w3-test-directive>

<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
    return {
        template : "<h1>Made by a directive!</h1>"
    };
});
</script>

</body>
Inténtalo tú mismo "

Puede invocar una directiva mediante el uso de:

  • nombre del elemento
  • Atributo
  • Clase
  • Comentario

Los ejemplos siguientes serán todos producir el mismo resultado:

nombre del elemento

<w3-test-directive></w3-test-directive>
Inténtalo tú mismo "

Atributo

<div w3-test-directive></div>
Inténtalo tú mismo "

Clase

<div class="w3-test-directive"></div>
Inténtalo tú mismo "

Comentario

<!-- directive: w3-test-directive -->
Inténtalo tú mismo "

restricciones

Le permite restringir las directivas que sólo se invocada por algunos de los métodos.

Ejemplo

Mediante la adición de un restrict propiedad con el valor "A" , la directiva sólo puede ser invocada por atributos:

var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
    return {
        restrict : "A",
        template : "<h1>Made by a directive!</h1>"
    };
});
Inténtalo tú mismo "

Los restringir los valores legales son:

  • E para el nombre del elemento
  • A de Atributo
  • C para la Clase
  • M para Comentario

Por defecto, el valor es EA , lo que significa que los dos nombres de elementos y atributos nombres pueden invocar la directiva.