Aprende a repetir elementos como todo un Capitán 🧑✈️⚓
Hola devs 👩💻👨💻, hoy vamos a abordar un tema súper útil en Angular: los bucles.
Así como un barco recorre el mar parando en varias islas 🏝️, los bucles recorren colecciones de datos, mostrando o procesando cada elemento.
Vamos a ver cómo se hace esto en Angular paso a paso, con ejemplos y emojis para no dormirnos 😴👉😄.
1️⃣ *ngFor
en el HTML – El timón del barco 🚢
Imagina que tienes una lista de frutas tropicales 🍍🍌🥭 que quieres mostrar en pantalla. ¡Aquí entra *ngFor
al rescate!
// archivo: frutas.component.ts
export class FrutasComponent {
frutas: string[] = ['Piña 🍍', 'Banano 🍌', 'Mango 🥭'];
}
Y en el HTML:
*ngFor="let fruta of frutas">{{ fruta }}
📌 Explicación:
-
*ngFor
recorre cada elemento defrutas
. -
let fruta of frutas
crea una variablefruta
por cada elemento. -
{{ fruta }}
lo muestra en pantalla.
🧠 ¡Fácil y limpio! Y se ve así:
- Piña 🍍
- Banano 🍌
- Mango 🥭
2️⃣ Bucles en TypeScript – Los motores del barco 🛠️
Ahora supongamos que quieres hacer algo con lógica, como filtrar frutas o convertirlas a mayúsculas.
🧪 Ejemplo con for
tradicional:
for (let i = 0; i < this.frutas.length; i++) {
console.log(`Fruta #${i + 1}: ${this.frutas[i]}`);
}
🧪 Ejemplo con forEach
:
this.frutas.forEach((fruta, index) => {
console.log(`Fruta ${index + 1}: ${fruta.toUpperCase()}`);
});
🧪 Ejemplo con map
para transformar:
const frutasEnMayuscula = this.frutas.map(fruta => fruta.toUpperCase());
console.log(frutasEnMayuscula); // ['PIÑA 🍍', 'BANANO 🍌', 'MANGO 🥭']
3️⃣ Bonus: ng-template
para más control 🧙♂️
Puedes usar ng-template
si quieres mostrar un mensaje cuando no haya datos. Ejemplo:
*ngIf="frutas.length > 0; else noHayFrutas">
*ngFor="let fruta of frutas">{{ fruta }}
#noHayFrutas>
No hay frutas para mostrar 🍽️
🧭 Resumen del Capitán
Herramienta | ¿Para qué sirve? |
---|---|
*ngFor |
Mostrar listas en HTML |
for |
Bucle clásico, útil para lógica más compleja |
forEach |
Recorre arrays, sin modificar |
map |
Transforma arrays y devuelve uno nuevo |
ng-template |
Muestra contenido alternativo (como un else ) |