[[oktatas:web:angular|< Angular]]
====== Angular - TrackByFunction ======
* **Szerző:** Sallai András
* Copyright (c) 2023, Sallai András
* Szerkesztve: 2023, 2025
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== NgForOf azonosítója =====
Az NgForOf direktava helyett a @for() szintaxis ajánlott az Angular 16 utáni változatokban, de használható ez a direktíva is.
A TrackByFunction, az NgForOf direktíva használatakor segít az egyedi azonosító használatában a DOM változtatása során.
Célja, hogy csak a DOM-nak csak azokat a részeit változtassuk, ami az adott tömbben vagy listában is változik.
Ez Angular új **@for()** szintaxis használata esetén nem szükséges ez a függvény, mivel a kötelező track kulccsal ez automatikus.
===== Model és tömb =====
class Employee {
id !: number;
name !: string;
city !: string;
salary !: number;
}
Legyen egy list:
employees: Employee[] = [];
===== NgForOf direktíva =====
==== TrackBy függvény ====
function employeeTrackBy(index, employee) {
return employee.id;
}
==== Használat ====
{{ emp.name }} |
{{ emp.city }} |
{{ emp.salary }} |
===== Az Angular @for() szintaxisa =====
A @for() szintaxis használata esetén nem szükséges külön megírni a trackBy() függvényt, mivel
automatikusan működik.
@for(emp of employees; track emp.id) {
{{ emp.name }} |
{{ emp.city }} |
{{ emp.salary }} |
}