En Angular, se pueden utilizar diferentes métodos para implementar estructuras de repetición, especialmente cuando se trata de mostrar listas o datos dinámicos en las vistas. El bucle for
en Angular generalmente se implementa mediante la directiva ngFor
en el HTML, aunque también existen maneras de realizar un bucle directamente en TypeScript cuando se necesita manipular datos antes de renderizarlos.
ngFor
en Angular
ngFor
es una directiva estructural de Angular que permite iterar sobre una colección y mostrar los elementos en la plantilla. Es muy común en casos donde se necesita renderizar una lista de elementos en el DOM.
ngFor
<div *ngFor="let item of items">
{{ item }}
</div>
1. let item of items
: Aquí items
es el array que contiene los elementos que deseas iterar. item
representa cada elemento del array en cada iteración.
2. {{ item }}
: Se utiliza para mostrar el valor del elemento actual en la plantilla.
// En el componente TypeScript
export class AppComponent {
items = ['Elemento 1', 'Elemento 2', 'Elemento 3'];
}
<!-- En la plantilla HTML -->
<ul>
<li *ngFor="let item of items">{{ item }}</li>
</ul>
ngFor
Puedes obtener el índice de cada elemento en ngFor
usando index
y acceder a propiedades de objetos de manera directa:
<div *ngFor="let producto of productos; let i = index">
<p>Producto {{ i + 1 }}: {{ producto.nombre }} - Precio: {{ producto.precio }}</p>
</div>
ngFor
Angular permite aplicar clases condicionales y estilos dentro de un bucle:
<div *ngFor="let producto of productos" [class.destacado]="producto.destacado">
{{ producto.nombre }}
</div>
for
en TypeScript en Angular
En situaciones donde necesitas procesar datos antes de mostrarlos en la vista, puedes usar bucles for
en el archivo TypeScript:
export class AppComponent {
items = [];
constructor() {
for (let i = 0; i < 5; i++) {
this.items.push(`Elemento ${i + 1}`);
}
}
}
Luego puedes mostrar estos elementos con ngFor en el HTML.
Si necesitas usar bucles anidados, ngFor también permite anidar estructuras:
<div *ngFor="let categoria of categorias">
<h3>{{ categoria.nombre }}</h3>
<ul>
<li *ngFor="let producto of categoria.productos">{{ producto }}</li>
</ul>
</div>
Para más información, puedes consultar la documentación oficial de Angular sobre ngFor.
Jorge García
Fullstack developer