2.5 - Directivas
Si alguna vez utilizaste AngularJS muchas cosas te seran conocidas, ahora si nunca utilizaste AngularJS no te hagas drama, tambien te pareceran conocidas.
Angular nos ofrece una serie de directivas para poder trabajar de una forma mas directa en nuestros templates, estas no tienen que se agregadas en nuestro componente, ni importadas, ni nada por el estilo, simplemente tenemos que utilizarlas donde las necesitamos y listo.
Las directivas son palabras "reservadas" que ejecutan funcionalidad en base a la directiva misma, o a datos que le enviemos.
NgIf
NgSwitch
NgStyle
NgClass
NgFor
NgIf
En esta directiva, vamos a poner un valor ( puede ser una operación, una variable, una función) y en el caso de que sea VERDADERO va a mostrar el contenido del tag al que se lo hayamos puesto, en caso contrario lo escondera.
Si te diste cuenta ya, para las directivas de Angular vamos a tener que ponerle el '*' (asterisco) adelante.
NgSwitch
Algunas veces necesitamos renderear diferentes elementos dependiendo de una condición.
Cuando nos pase esto tendriamos con ngIf una forma de hacerlo =>
Y se pone peor cuando tenemos mas posiblidades, como si tendriamos que comparar por C, D, E ...
Para este tipo de casos, Angular nos ofrece ngSwitch, si tal y como el nombre lo indica, es algo que vamos a poder entender facilmente ya que se basa en la funcionalidad del switch
En el caso de que tengamos que agregar nuevas posiblidades, nuestro código va a seguir siendo limpio:
NgStyle
Con ngstyle podemos obtener el elemento del DOM y agregarle las propiedades que queramos por medio de una expresion de Angular.
En este caso al style ( del tag en el que nos encontramos, osea al elemento del dom que pertenece ) le agrega un background color red.
Hasta ahi no tendria mucho sentido hacerlo, pero vamos a avanzar un poco mas con las funcionalidades de ngstyle.
Pero esto parece muy "sucio" es como volver a los 90 cuando haciamos "style in line", pareceria mucho mejor agregar una clase con esos estilos, ahora que pasa cuando esto lo "bindeamos" a una variable, aps!! ahora cambia todo no?
Al cual podriamos poner un boton para que cambie el color
Por lo tanto, cuando le ponemos una variable, ya podemos jugar con los estilos dependiendo de las necesidades de la webApp
esto nos lleva a la proxima directiva
NgClass
NgClass es la directiva que representa al atributo de la clase en el HTML (template) y esto puede generar que cambien los estilos dinamicamente en nuestro DOM.
Lo primero que podemos hacer con NgClass es pasaer un literal (string). El objeto espera una clase y un valor (verdadero o falso) para poder aplicar o no el estilo.
Ahora vamos a ver como impactaria en distintos divs.
Otra alternativa es definir un objeto en nuestro componente:
Y en nuestro HTML:
Otro caso seria poniendole el estilo directo
O podriamos declararlo en un array y ponerlo directo
De esta forma vamos a poder ir jugando con nuestro estilos directamente.
NgFor
NgFor es nuestra directiva iteradora, es como un foreach, pero con la diferencia que va a iterar en nuestro template, y generar variables con 'let' para que sean unicas y se liberen en el momento
Si tenemos un array de colores:
Lo que deberiamos hacer para iterarlos en nuestro Template es lo siguiente:
De esta forma vamos a tener una serie colores iterados... si tan simple como poner esa linea y los "<li>" se repetiran.
Ahora, que pasa si queremos iterar un array de objetos que vinieron de nuestro backend por ejemplo:
Ahora que tenemos nuestro array de objetos, vamos a iterarlo.
Lo que vemos ahora, que "ticket" pasa a ser una variable que tiene el objeto que estamos iterando.. cada pasada va a obtener 1 de los objetos y lo va a iterar como el mismo, por lo tanto con el "." vamos a poder acceder a sus variables internas.
Last updated