Mam prostą ngFor
pętlę, która również śledzi prąd index
. Chcę zapisać tę index
wartość w atrybucie, aby móc ją wydrukować. Ale nie mogę zrozumieć, jak to działa.
Zasadniczo mam to:
<ul *ngFor="#item of items; #i = index" data-index="#i">
<li>{{item}}</li>
</ul>
Chcę zapisać wartość #i
w atrybucie data-index
. Próbowałem kilku metod, ale żadna z nich nie działała.
Mam tutaj wersję demo: http://plnkr.co/edit/EXpOKAEIFlI9QwuRcZqp?p=preview
Jak mogę zapisać index
wartość w data-index
atrybucie?
attr.
jest to składnia informująca Angular2, aby ustawiła wartość wyrażenia na nazwę atrybutu. Chyba nie chodzi tylko o ocenę JSON ;-) Zobacz ten link: angular.io/docs/ts/latest/guide/template-syntax.htmlngFor
nali
zamiast zamiastul
.W Angular 5/6/7/8:
W starszych wersjach
Angular.io ▸ API ▸ NgForOf
Przykłady testów jednostkowych
Kolejny interesujący przykład
źródło
index as i
działa świetnie, dziękuję. Ale czy nie*ngFor
chodzi o powtarzanie elementu (np.<li>
W tym przypadku)? Sugerowany kod tworzy wiele<ul>
s zamiast wielu<li>
s.index as i
jest bardziej elegancki niżlet i = index
Tylko aktualizacja tego, odpowiedź Thierry'ego jest nadal poprawna, ale do Angular2 wprowadzono aktualizację dotyczącą:
#i = index
Powinien byćlet i = index
EDYCJA / AKTUALIZACJA:
*ngFor
Powinny być na elemencie pan chce foreach, więc na tym przykładzie powinno być:EDYCJA / AKTUALIZACJA
Kątowy 5
EDYCJA / AKTUALIZACJA
Kątowy 7/8
źródło
#item
powinno byćlet item
;-)Myślę, że już na nie odpowiedziano, ale tylko korekta, jeśli wypełniasz nieuporządkowaną listę,
*ngFor
pojawi się element, który chcesz powtórzyć. Więc powinno być insidide<li>
. Ponadto Angular2 używa teraz let do deklarowania zmiennej.źródło
Pozostałe odpowiedzi są poprawne, ale możesz
[attr.data-index]
całkowicie pominąć i po prostu użyćźródło
Możesz użyć [attr.data-index] bezpośrednio, aby zapisać indeks w atrybucie data-index, który jest dostępny w Angular wersji 2 i wyższych.
źródło
Spróbuj tego
źródło
z paginacją laravel
źródło