Directivas AngularJS: ng-init, ng-app, ng-model y ng-repeat
โก Resumen inteligente
Las directivas de AngularJS extienden el HTML simple con un nuevo comportamiento. Los marcadores ng-app, ng-init, ng-model y ng-repeat inicializan una aplicaciรณn, insertan datos locales, vinculan los controles del formulario al modelo y clonan elementos una vez por cada elemento de la colecciรณn.

ยฟQuรฉ es la directiva en AngularJS?
A Directiva En AngularJS, `ng-model` es un comando que proporciona nuevas funcionalidades a HTML. Al recorrer el cรณdigo HTML, AngularJS primero busca las directivas en la pรกgina y luego analiza el cรณdigo HTML en consecuencia. Un ejemplo sencillo de directiva de AngularJS, que hemos visto en capรญtulos anteriores, es la directiva `ng-model`. Esta directiva se utiliza para vincular nuestro modelo de datos con nuestra vista.
Nota: Puedes tener cรณdigo bรกsico de AngularJS en una pรกgina HTML con las directivas ng-init, ng-repeat y ng-model sin necesidad de tener controladores. La lรณgica para estas directivas estรก en el archivo AngularJS que es proporcionado por GoogleLos controladores son las construcciones de programaciรณn de AngularJS de siguiente nivel que permiten la lรณgica de negocio, pero como se mencionรณ, para que una aplicaciรณn sea una aplicaciรณn AngularJS no es obligatorio tener un controlador.
Pero, ยฟcรณmo es que un navegador termina ejecutando uno?
Cรณmo funcionan las directivas de AngularJS en HTML
Como definimos en la introducciรณn, una directiva de AngularJS es una forma de extender la funcionalidad de HTMLCuando se carga la pรกgina, el compilador de AngularJS recorre el DOM, compara cada elemento con las directivas registradas y le asigna el comportamiento que encuentra.
AngularJS El sistema incluye docenas de directivas integradas, ademรกs de las que registres tรบ mismo. Las cuatro que se explican a continuaciรณn con ejemplos prรกcticos (ng-app, ng-init, ng-model y ng-repeat) son las que los principiantes suelen encontrar primero. Antes de ver esos ejemplos, ten en cuenta las cuatro formas en que se puede escribir una directiva.
ยฟCuรกles son los cuatro tipos de directivas de AngularJS?
Una directiva no siempre es un atributo. El compilador de AngularJS puede hacer coincidir una por nombre de elemento, atributo, nombre de clase o comentario, y cada directiva declara quรฉ formas acepta a travรฉs de su restrict propiedad. El valor predeterminado es EAPor lo tanto, tanto la sintaxis de elementos como la de atributos funcionan a menos que se indique lo contrario. El valor es lo mรกs importante al escribir una directiva propia, ya que el compilador ignora cualquier forma que excluya el valor de restricciรณn.
| restringir valor | Emparejado por | Ejemplo de marcado | Uso tรญpico |
|---|---|---|---|
| E | Nombre del elemento | Bloques autรณnomos que poseen una plantilla | |
| A | Atributo | Agregar comportamiento a un elemento existente | |
| C | Nombre de la clase | Marcado heredado que no puede aceptar nuevos atributos | |
| M | Comentario | Raro, conservado por compatibilidad con versiones anteriores. |
๐ Tip: Prefiera la sintaxis de elementos y atributos. Referencia oficial de directivas de AngularJS Considera las formas de clase y comentario como opciones heredadas. Todos los ejemplos a continuaciรณn utilizan sintaxis de atributos.
ng-aplicaciรณn en AngularJS
Esto se utiliza para inicializar una aplicaciรณn AngularJS. Cuando esta directiva se encuentra en una pรกgina HTML, bรกsicamente le indica a AngularJS que esa pรกgina HTML es una aplicaciรณn AngularJS.
Ejemplo de ng-app
El siguiente ejemplo muestra cรณmo convertir una aplicaciรณn HTML normal en una aplicaciรณn AngularJS.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app=""> Tutorial Name : {{ "Angular" + "JS"}} </div> </body> </html>
โ ๏ธ Advertencia: El anuncio conserva el original. chrset="UTF 8", exactamente como se publicรณ. El atributo correcto es charset="UTF-8".
Code Explicaciรณn:
- La directiva โng-appโ se agrega a nuestra etiqueta div para indicar que esta aplicaciรณn es una aplicaciรณn AngularJS. Tenga en cuenta que la directiva ng-app se puede aplicar a cualquier etiqueta, por lo que tambiรฉn se puede colocar en la etiqueta body.
- Dado que hemos definido esta aplicaciรณn como una aplicaciรณn AngularJS, ahora podemos utilizar la funcionalidad de AngularJS. En nuestro caso, estamos utilizando expresiones para simplemente concatenar dos cadenas.
Si el cรณdigo se ejecuta correctamente, aparecerรก la siguiente salida.
Salida:
La salida muestra claramente el resultado de la expresiรณn, lo cual fue posible gracias a que definimos la aplicaciรณn como una aplicaciรณn AngularJS. La siguiente directiva proporciona sus datos.
ng-init en AngularJS
Esto se utiliza para inicializar los datos de la aplicaciรณn. En ocasiones, es posible que necesites algunos datos locales para tu aplicaciรณn, y esto se puede hacer con la directiva ng-init.
Ejemplo de ng-init
En este ejemplo, crearemos una variable llamada "TutorialName" usando la directiva ng-init y mostraremos el valor de esa variable en la pรกgina.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="TutorialName='Angular JS'"> Tutorial Name : {{ TutorialName}} </div> </body> </html>
Code Explicaciรณn:
- La directiva ng-init se agrega a nuestra etiqueta div para definir una variable local llamada "TutorialName" y el valor asignado es "AngularJS".
- Estamos utilizando expresiones en AngularJS para mostrar el resultado de la variable llamada "TutorialName", que se definiรณ en nuestra directiva ng-init.
Si el cรณdigo se ejecuta correctamente, aparecerรก la siguiente salida.
Salida:
En la salida,
- El resultado muestra claramente el resultado de la expresiรณn que contiene la cadena "AngularJS". Esto se debe a que la cadena "AngularJS" se asignรณ a la variable "TutorialName" en la secciรณn ng-init.
La siguiente directiva envรญa datos desde la pantalla al modelo.
modelo ng en AngularJS
Y por รบltimo, tenemos la directiva ng-model, que se utiliza para vincular el valor de un control HTML a los datos de la aplicaciรณn.
Ejemplo de modelo ng
En este ejemplo,
- Vamos a crear 2 variables llamadas โcantidadโ y โprecioโ. Estas variables estarรกn vinculadas a 2 controles de entrada de texto.
- Luego mostraremos el monto total basado en la multiplicaciรณn de los valores de precio y cantidad.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="quantity=1;price=5"> People : <input type="number" ng-model="quantity"> Registration Price : <input type="number" ng-model="price"> Total : {{quantity * price}} </div> </body> </html>
Code Explicaciรณn:
- La directiva ng-init se agrega a nuestra etiqueta div para definir 2 variables locales; uno se llama "cantidad" y el otro es "precio".
- Ahora estamos usando la directiva ng-model para vincular los cuadros de texto de โPersonasโ y โPrecio de registroโ a nuestras variables locales โcantidadโ y โprecioโ respectivamente.
- Finalmente, mostramos el Total a travรฉs de una expresiรณn, que es la multiplicaciรณn de las variables cantidad y precio.
Si el cรณdigo se ejecuta correctamente, aparecerรก la siguiente salida.
Salida:
- El resultado muestra claramente la multiplicaciรณn de los valores de Personas y Precio de registro.
Ahora, si modificas el valor de Personas y Precio de inscripciรณn en los cuadros de texto, el Total se actualiza automรกticamente.
- La salida anterior simplemente muestra el poder del enlace de datos en AngularJS, que se logra con el uso de directiva de modelo ng.
El รบltimo de los cuatro maneja muchos valores a la vez.
ng-repetir en AngularJS
Esto se utiliza para repetir un elemento HTML. El siguiente ejemplo muestra cรณmo utilizar el directiva ng-repetir.
Ejemplo de repeticiรณn ng
En este ejemplo,
- Tendremos una serie de nombres de capรญtulos en una variable de matriz y
- luego use la directiva ng-repeat para mostrar cada elemento de la matriz como un elemento de lista
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="chapters=['Controllers','Models','Filters']"> <ul> <li ng-repeat="names in chapters"> {{names}} </li> </ul> </div> </body> </html>
Code Explicaciรณn:
- La directiva ng-init se agrega a nuestra etiqueta div para definir una variable llamada "capรญtulos", que es una variable de matriz que contiene 3 cadenas.
- El elemento ng-repeat se utiliza declarando una variable en lรญnea llamada "nombres" y revisando cada elemento en la matriz de capรญtulos.
- Finalmente, mostramos el valor de la variable en lรญnea local 'nombres'.
Si el cรณdigo se ejecuta correctamente, aparecerรก la siguiente salida.
Salida:
- El resultado anterior simplemente muestra que la directiva ng-repeat tomรณ cada valor en la matriz llamada "capรญtulos" y creรณ elementos de lista HTML para cada elemento de la matriz.
Esos cuatro abarcan la puesta en marcha, los datos, la vinculaciรณn y la repeticiรณn. La siguiente lista muestra lo que sigue.
Otras directivas integradas de AngularJS de uso comรบn
Las cuatro directivas anteriores constituyen el conjunto inicial, no la biblioteca completa. Cada entrada a continuaciรณn es un atributo que se coloca directamente en el elemento que controla.
- ng-bind: Escribe un valor de รกmbito en el texto de un elemento sin mostrar brevemente las llaves sin formato al cargar la pรกgina.
- ng-if: Elimina el elemento del DOM cuando su expresiรณn es falsa y lo reconstruye cuando es verdadera.
- ng-show y ng-hide: Togglvisibilidad con CSS. El elemento permanece en el DOM, por lo que los cambios repetidos cuestan menos.
- ng-class: Agrega o elimina clases CSS de una expresiรณn, permitiendo que el estilo siga el modelo.
- ng-click: Ejecuta una expresiรณn o una funciรณn de รกmbito cuando el usuario hace clic en el elemento.
- ng-controller: Adjunta un controlador a un bloque de marcado una vez que la pรกgina supera el tamaรฑo de ng-init.
- ng-disabled y ng-readonly: Establezca el atributo de formulario correspondiente siempre que su expresiรณn sea verdadera.
Las preguntas frecuentes que aparecen a continuaciรณn responden a las preguntas que suelen surgir tras esta lista.









