Las directivas en Angular son una de las características más poderosas y flexibles del framework. Permiten modificar el comportamiento del DOM de manera declarativa. En este tema, nos enfocaremos en las directivas incorporadas que Angular proporciona de manera predeterminada.
¿Qué son las Directivas?
Las directivas son clases que pueden modificar el DOM de una aplicación Angular. Existen tres tipos principales de directivas:
- Directivas de Componente: Son directivas con una plantilla asociada.
- Directivas Estructurales: Modifican la estructura del DOM, añadiendo o eliminando elementos.
- Directivas de Atributo: Modifican el comportamiento o el aspecto de un elemento existente.
Directivas Estructurales Incorporadas
*ngIf
La directiva *ngIf
se utiliza para añadir o eliminar elementos del DOM basándose en una condición booleana.
Ejemplo:
Explicación:
*ngIf="isVisible"
: SiisVisible
estrue
, eldiv
se renderiza. Si esfalse
, eldiv
no se renderiza.
*ngFor
La directiva *ngFor
se utiliza para iterar sobre una colección y renderizar un elemento para cada ítem de la colección.
Ejemplo:
Explicación:
*ngFor="let item of items"
: Itera sobre la colecciónitems
y renderiza unli
para cadaitem
.
*ngSwitch
La directiva *ngSwitch
se utiliza para mostrar uno de varios elementos basándose en una expresión.
Ejemplo:
<div [ngSwitch]="color"> <div *ngSwitchCase="'red'">Color es rojo</div> <div *ngSwitchCase="'blue'">Color es azul</div> <div *ngSwitchDefault>Color no es ni rojo ni azul</div> </div>
Explicación:
[ngSwitch]="color"
: Evalúa la expresióncolor
.*ngSwitchCase="'red'"
: Muestra estediv
sicolor
es'red'
.*ngSwitchDefault
: Muestra estediv
si ninguna de las condiciones anteriores se cumple.
Directivas de Atributo Incorporadas
ngClass
La directiva ngClass
se utiliza para añadir o eliminar clases CSS de un elemento dinámicamente.
Ejemplo:
Explicación:
[ngClass]="{ 'active': isActive, 'disabled': isDisabled }"
: Añade la claseactive
siisActive
estrue
y la clasedisabled
siisDisabled
estrue
.
ngStyle
La directiva ngStyle
se utiliza para aplicar estilos CSS a un elemento de manera dinámica.
Ejemplo:
Explicación:
[ngStyle]="{ 'color': textColor, 'font-size': fontSize + 'px' }"
: Aplica el colortextColor
y el tamaño de fuentefontSize
aldiv
.
ngModel
La directiva ngModel
se utiliza para enlazar datos bidireccionalmente entre el modelo y la vista.
Ejemplo:
Explicación:
[(ngModel)]="username"
: Enlaza el valor delinput
con la propiedadusername
del componente. Cualquier cambio en elinput
se reflejará enusername
y viceversa.
Ejercicios Prácticos
Ejercicio 1: Uso de *ngIf
Instrucciones:
- Crea un componente que tenga una propiedad
isLoggedIn
. - Usa
*ngIf
para mostrar un mensaje de bienvenida solo siisLoggedIn
estrue
.
Solución:
// app.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: ` <button (click)="toggleLogin()">Toggle Login</button> <div *ngIf="isLoggedIn">Bienvenido, usuario!</div> ` }) export class AppComponent { isLoggedIn = false; toggleLogin() { this.isLoggedIn = !this.isLoggedIn; } }
Ejercicio 2: Uso de *ngFor
Instrucciones:
- Crea un componente que tenga una propiedad
items
que sea una lista de nombres. - Usa
*ngFor
para mostrar cada nombre en una lista desordenada (ul
).
Solución:
// app.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: ` <ul> <li *ngFor="let item of items">{{ item }}</li> </ul> ` }) export class AppComponent { items = ['Alice', 'Bob', 'Charlie']; }
Ejercicio 3: Uso de ngClass
Instrucciones:
- Crea un componente que tenga una propiedad
isActive
. - Usa
ngClass
para añadir una claseactive
a undiv
solo siisActive
estrue
.
Solución:
// app.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: ` <button (click)="toggleActive()">Toggle Active</button> <div [ngClass]="{ 'active': isActive }">Este div puede ser activo</div> `, styles: [` .active { color: green; font-weight: bold; } `] }) export class AppComponent { isActive = false; toggleActive() { this.isActive = !this.isActive; } }
Conclusión
En esta sección, hemos explorado algunas de las directivas incorporadas más comunes en Angular, incluyendo *ngIf
, *ngFor
, *ngSwitch
, ngClass
, ngStyle
y ngModel
. Estas directivas son herramientas poderosas que te permiten manipular el DOM de manera declarativa y eficiente. Asegúrate de practicar con los ejercicios proporcionados para consolidar tu comprensión de estas directivas. En el próximo tema, exploraremos cómo crear tus propias directivas personalizadas.
Curso de Angular 2+
Módulo 1: Introducción a Angular
- ¿Qué es Angular?
- Configuración del Entorno de Desarrollo
- Tu Primera Aplicación Angular
- Arquitectura de Angular
Módulo 2: Conceptos Básicos de TypeScript
- Introducción a TypeScript
- Variables y Tipos de Datos en TypeScript
- Funciones y Funciones Flecha
- Clases e Interfaces
Módulo 3: Componentes y Plantillas
- Creación de Componentes
- Plantillas de Componentes
- Estilos de Componentes
- Interacción entre Componentes
Módulo 4: Directivas y Pipes
Módulo 5: Servicios e Inyección de Dependencias
- Introducción a los Servicios
- Creación y Uso de Servicios
- Inyección de Dependencias
- Inyectores Jerárquicos
Módulo 6: Enrutamiento y Navegación
Módulo 7: Formularios en Angular
- Formularios Basados en Plantillas
- Formularios Reactivos
- Validación de Formularios
- Formularios Dinámicos
Módulo 8: Cliente HTTP y Observables
- Introducción al Cliente HTTP
- Realizando Solicitudes HTTP
- Manejo de Respuestas HTTP
- Uso de Observables
Módulo 9: Gestión de Estado
- Introducción a la Gestión de Estado
- Uso de Servicios para la Gestión de Estado
- NgRx Store
- NgRx Effects