Поиск по сайту
Ctrl + K
Вопросы по Angular

Какова цель директивы *ngFor?

В Angular директива *ngFor используется для итерации по коллекциям данных. Это позволяет вам динамически отображать списки элементов в ваших шаблонах. Эта директива может быть полезна при работе с массивами данных, например, для отображения списка пользователей, продуктов и т.д.

Основы использования *ngFor

Синтаксис директивы *ngFor выглядит следующим образом:

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

В этом примере items - это массив, а item - это переменная, которая будет принимать значение каждого элемента массива по очереди.

Пример использования *ngFor

Предположим, у нас есть массив данных, содержащий названия фруктов, и мы хотим отобразить их в виде списка:

// fruits.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-fruits',
  templateUrl: './fruits.component.html',
})
export class FruitsComponent {
  fruits: string[] = ['Яблоко', 'Апельсин', 'Банан', 'Груша'];
}
<!-- fruits.component.html -->
<ul>
  <li *ngFor="let fruit of fruits">{{ fruit }}</li>
</ul>

В этом случае, когда компонент FruitsComponent рендерится, Angular будет создавать элемент списка <li> для каждого фрукта из массива fruits.

Дополнительные возможности *ngFor

Директива *ngFor также предоставляет возможность использовать специальные переменные, такие как index, first, last, и even/odd для управления выводом.

Вот пример, где используются некоторые из этих переменных:

<ul>
  <li *ngFor="let fruit of fruits; let i = index; let isFirst = first">
    {{ isFirst ? 'Первая: ' : '' }}{{ fruit }} (индекс {{ i }})
  </li>
</ul>

Вывод будет таким:

Первая: Яблоко (индекс 0)
Апельсин (индекс 1)
Банан (индекс 2)
Груша (индекс 3)

Заключение

Директива *ngFor является мощным инструментом для работы со списками в Angular. Она позволяет легко и быстро выводить данные из массивов на страницы. Понимание этой директивы — важный шаг для каждого разработчика, работающего с Angular, и она позволяет создавать динамичные и интерактивные веб-приложения.