To może wydawać się głupie pytanie, ale nie mogę nigdzie znaleźć odpowiedzi.
Uderzam w ten internetowy interfejs API, który zwraca tablicę obiektów w formacie JSON:
Dokumentacja Handlebars przedstawia następujący przykład:
<ul class="people_list">
{{#each people}}
<li>{{this}}</li>
{{/each}}
</ul>
W kontekście:
{
people: [
"Yehuda Katz",
"Alan Johnson",
"Charles Jolley"
]
}
W moim przypadku nie mam nazwy tablicy, to tylko główny obiekt odpowiedzi. Próbowałem używać {{#each}}
bez powodzenia.
Pierwsze użycie kierownicy ... Czego mi brakuje?
AKTUALIZACJA
Oto uproszczone skrzypce, aby pokazać, o co proszę: http://jsfiddle.net/KPCh4/2/
Czy kierownica wymaga, aby zmienna kontekstowa była obiektem, a nie tablicą?
arrays
loops
each
handlebars.js
emzero
źródło
źródło
Odpowiedzi:
Możesz przejść
this
do każdego bloku. Zobacz tutaj: http://jsfiddle.net/yR7TZ/1/źródło
{{#each people}}
wewnątrz wewnętrznej pętli{{#each this}}
? Na przykład{{people@index}}
To skrzypce ma zarówno
each
bezpośredni plik json. http://jsfiddle.net/streethawk707/a9ssja22/ .Poniżej znajdują się dwa sposoby iteracji po tablicy. Jeden jest z bezpośrednim przekazaniem json, a drugi nazywa tablicę json podczas przekazywania do posiadacza zawartości.
Np. 1: Poniższy przykład bezpośrednio wywołuje klucz json (dane) w zmiennej small_data.
W html użyj poniższego kodu:
Poniższe można umieścić w nagłówku lub treści html:
Poniższy dokument jest gotowy:
Poniżej znajduje się plik json:
Na koniec dołącz plik json do posiadacza zawartości:
Eg2: Iteracja przy użyciu każdego.
Rozważ poniższy plik json.
Podczas przekazywania pliku json do posiadacza zawartości po prostu nazwij go w ten sposób:
A szablon wygląda tak:
źródło
Miałem na myśli w
template()
rozmowie ...Musisz tylko przekazać wyniki jako obiekt. Więc zamiast dzwonić
robić
i użyj
{{#each apidata}}
w kodzie szablonudemo na http://jsfiddle.net/KPCh4/4/
( usunięto resztki
if
kodu, który się zawiesił )źródło
{{#each this}}
jest prawidłową formą.Kierownice mogą używać tablicy jako kontekstu. Możesz użyć
.
jako katalogu głównego danych. Możesz więc przeglądać dane tablicy za pomocą{{#each .}}
.źródło
Korzystanie
this
i{{this}}
. Zobacz kod poniżej w node.js:Dane wyjściowe dziennika konsoli:
źródło