Volver a la página principal
domingo 10 noviembre 2024
30

Maneras de hacer un for en Angular

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.

Usar 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.

Sintaxis básica de ngFor

<div *ngFor="let item of items">
  {{ item }}
</div>

Explicación del código:

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.

Ejemplo completo en Angular:

// 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>

Índices y acceso a objetos en 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>

Clases y Condiciones en 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>

Uso de bucles 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.

Ejemplo con un bucle anidado

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>

Referencias

Para más información, puedes consultar la documentación oficial de Angular sobre ngFor.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer