html <ul> <li ngFor="let fruit of fruits; trackBy: trackByFn" [style.color]="fruit ? 'black' : 'red'"> {{ fruit || 'Значение отсутствует' }} </li> </ul>
Зачем в новых шаблонных циклах Angular использовать track и по какому полю лучше трекать элементы? Что будет при track по объекту?
html ul li ngFor="let fruit of fruits; trackBy: trackByFn" [style.color]="fruit ? 'black' : 'red'" {{ fruit || 'Значение отсутствует' }} li ul
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
html <ul> <li *ngFor="let fruit of fruits; trackBy: trackByFn" [style.color]="fruit ? 'black' : 'red'"> {{ fruit || 'Значение отсутствует' }} </li> </ul>
```typescript
fruits = ['яблоко', null, 'банан', undefined, 'апельсин'];
trackByFn(index: number, item: string | null | undefined): number {
return index; // или можно использовать уникальный идентификатор, если есть
}
В этом шаблоне:
- Используется
*ngForдля перебора массива фруктов. - Если значение отсутствует (
nullилиundefined), строка окрашивается в красный цвет и выводится текст "Значение отсутствует". - Добавлен
trackByдля оптимизации рендеринга, чтобы Angular отслеживал элементы по индексу.