Directivas angular para manejar el HTML

En post explicaré cómo manejar HTML con AngularJS. Cómo ya dije anteriormente, la finalidad de una directiva es modificar o crear un comportamiento totalmente nuevo. Con esto me refiero a que con las directivas angular que verás en este post podrás añadir HTML de otro documento, ocultar, mostrar y crear elementos HTML.

ngInclude

Esta directiva permite añadir contenidos de otro fichero en tu documento. Para este ejemplo será preciso tener 2 html, uno de ellos se llamará inlcuyeme.html y sólo tendrá lo siguiente, ni metas, ni head ni body, nada salvo este párrafo.

Ahora el otro html que sería el principal.

Habrás notado en ng-include he usado dobles comilla y comilla simples. Esta directiva espera un string, que puede estar dentro de dobles comillas o comillas simples. Sin embargo, la expresión AngularJS que espera la directiva usa dobles comillas por  tanto la única manera de pasarle un string es que este use comillas simples.

ngShow

La directiva ngShow muestra u oculta un elemento HTML donde esté definido.Para ello la directiva funciona con 2 valores, true o false. Para el ejemplo que voy a mostrar, la directiva funcionará según el valor de la variable “desvelar“.

En el siguiente ejemplo lo que vamos hacer será mostrar un párrafo si le damos al botón “Mostrar”. Este botón tiene una directiva ng-click que llamará una función (desvelarSecreto) creada en el controlador que lo único que hace será cambiar el valor de la variable “desvelar“. Te recomiendo revisar mi post de módulos  y otro sobre directivas por si tienes alguna duda con respecto a su creación.

Comenzamos creando el módulo con su respectivo controlador donde se declara la variable desvelar y la función que provocará su cambio de valor a true.

A cotinuación, indicamos donde tendrá acción el módulo y el controlador

Y finalmente designamos que función llamará el bóton cuando sea clicado y declaramos la directiva ng-show en el párrafo, haciendo que se muestre o no en función del valor de la variabledesvelar

directivas angular ngshow - resultado

Resultado de ngShow

ngHide

La directiva ng-hide funciona exactamente igual sólo que true hará que se oculte el párrafo y false que se muestre. Podemos adaptar el ejemplo cambiando el nombre de la variable y del método.

Luego tenemos que cambiar la directiva a ng-hide y el nombre de la variable y función en el HTML.

ngRepeat

Esta directiva es la más útil de todas las directivas angular. Permite crear un bucle que instancia un plantilla por cada elemento de una colección(como un array). Se podría decir que es cómo un foreach pero mejorado.

Por defecto se pueden emplear cualquiera de las siguientes variables

Nombre Tipo Descripción
$index Número Número del índice del elemento actual dentro del bucle
$first boleano Devuelve true si el elemento es el primero en el bucle
$middle boleano True en caso de si el elemento recorrido está entre el primer y último elemento del bucle
$last boleano Devuelve true si el elemento recorrido es el último del bucle
$even boleano Si el índice ($index) es par devuelve true
$odd boleano Devuelve true si el índice ($index) es impar

Vamos un caso en acción. Vamos a suponer que tenemos una lista de invitados y queremos sacarla por pantalla

En este ejemplo vemos que usamos algunas de las variables que nos proporciona la directiva. Usamos tanto $first como $last en una condición ternaria (if abreviado) para saber si el elemento que estamos recorriendo es el primero o el último. De ser el caso, al lado del nombre aparecerá una pequeña notación. También usamos $index para numerar al invitado de la lista.

Otro elemento a tener en cuenta es como designamos la variable invitado

Este formato sería nombreDeVariable in colección. Invitado será el nombre de la variable y la colección el array de invitados. De esta forma cada elemento recorrido en el bucle nos referimos a el como invitado. Un detalle a tener en cuenta es que a diferencia de otras directivas angular, cuando empleamos ngRepeat, en cada iteración del bucle se crea una nuevo objeto scope. De esta forma podemos acceder a diferentes valores para las variables como $index o invitado.

Y hasta aquí directivas angular para manejar el HTML, espero que os haya gustado. A seguir picando 🙂