Próbuję określić indeks elementu w tablicy w szablonie kierownicy:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
używając tego:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Jeśli powyższe nie jest możliwe, jak napisałbym pomocnika, który mógłby uzyskać dostęp do określonego elementu w tablicy?
javascript
handlebars.js
lukemh
źródło
źródło
Expecting 'ID'
błąd z {{user.links.websites.1}} lub {{user.links.websites.0}}{{ websites.[0] }}
.Następujące elementy, z dodatkową kropką przed indeksem , działają tak, jak oczekiwano. Tutaj nawiasy kwadratowe są opcjonalne, gdy po indeksie następuje inna właściwość:
Jednak nawiasy kwadratowe są wymagane w:
W tym ostatnim użycie numeru indeksu bez nawiasów kwadratowych dałoby jeden:
Nawiasem mówiąc: nawiasy są (również) używane w składni literału segmentu w celu odniesienia do rzeczywistych identyfikatorów (nie numerów indeksów), które w przeciwnym razie byłyby nieprawidłowe. Więcej szczegółów w Czym jest prawidłowy identyfikator?
(Testowane z kierownicą w YUI.)
2.xx Aktualizacja
Możesz teraz użyć
get
do tego pomocnika:chociaż jeśli pojawi się błąd dotyczący tego, że indeks musi być łańcuchem, wykonaj:
źródło
{{#with people.1}}
Rozwiązanie pracował dla mnie, używająccom.github.jknack:handlebars:4.1.2
.źródło
Jeśli nieudokumentowane funkcje nie są Twoją grą, to samo można osiągnąć tutaj:
Następnie w szablonie
Napisałem powyższe, zanim dostałem
Nie widzę, żeby ktoś posuwał się za daleko z kierownicą bez pisania własnych pomocników.
źródło
Jeśli chcesz użyć zmiennych dynamicznych
To nie zadziała:
Musisz zrobić:
patrz pomocnik wyszukiwania kierownicy i podwyrażenia kierownicy .
źródło
Spróbuj tego, jeśli chcesz pobrać pierwszy / ostatni.
źródło
Kiedy zapętlasz tablicę z
each
i jeśli chcesz uzyskać dostęp do innej tablicy w kontekście bieżącego elementu, robisz to w ten sposób.Oto przykładowe dane.
Oto kierownica, aby uzyskać pierwszy przedmiot w
attr
tablicy.To wyjdzie
źródło
this
będzie działać zamiastthis.[0]
Poniższej składni można również użyć, jeśli tablica nie ma nazwy (tylko tablica jest przekazywana do szablonu):
źródło
W moim przypadku chciałem uzyskać dostęp do tablicy wewnątrz niestandardowego pomocnika,
Co nie działało, ale zadziałała odpowiedź sugerowana przez @julesbou.
Kod roboczy:
Mam nadzieję że to pomoże! Twoje zdrowie.
źródło