Ini mungkin pertanyaan yang konyol, tetapi saya tidak dapat menemukan jawabannya di mana pun.
Saya menggunakan API Web ini yang mengembalikan larik objek dalam format JSON:
Dokumen setang menunjukkan contoh berikut:
<ul class="people_list">
{{#each people}}
<li>{{this}}</li>
{{/each}}
</ul>
Dalam konteks:
{
people: [
"Yehuda Katz",
"Alan Johnson",
"Charles Jolley"
]
}
Dalam kasus saya, saya tidak memiliki nama untuk array, itu hanya objek root dari respons. Saya sudah mencoba menggunakan {{#each}}
tanpa hasil.
Pertama kali menggunakan Handlebars ... Apa yang saya lewatkan?
MEMPERBARUI
Berikut biola yang disederhanakan untuk menunjukkan kepada Anda apa yang saya tanyakan: http://jsfiddle.net/KPCh4/2/
Apakah setang memerlukan variabel konteks menjadi objek dan bukan array?
arrays
loops
each
handlebars.js
emzero
sumber
sumber
Jawaban:
Anda bisa lolos
this
ke setiap blok. Lihat di sini: http://jsfiddle.net/yR7TZ/1/sumber
{{#each people}}
di dalam loop dalam{{#each this}}
? Seperti{{people@index}}
Biola ini memiliki
each
json dan langsung. http://jsfiddle.net/streethawk707/a9ssja22/ .Di bawah ini adalah dua cara untuk melakukan iterasi pada array. Salah satunya adalah dengan passing json langsung dan yang lainnya menamai array json sambil meneruskan ke pemegang konten.
Eg1: Contoh di bawah ini secara langsung memanggil kunci json (data) di dalam variabel small_data.
Dalam html gunakan kode di bawah ini:
Di bawah ini dapat ditempatkan di header atau body html:
Yang di bawah ini ada di dokumen siap:
Di bawah ini adalah json tersebut:
Terakhir lampirkan json ke pemegang konten:
Eg2: Iterasi menggunakan masing-masing.
Pertimbangkan json di bawah ini.
Saat meneruskan json ke pemegang konten, cukup beri nama dengan cara ini:
Dan templatenya terlihat seperti:
sumber
Maksudku dalam
template()
panggilan itu ..Anda hanya perlu meneruskan hasilnya sebagai objek. Jadi, alih-alih menelepon
melakukan
dan gunakan
{{#each apidata}}
dalam kode template Andademo di http://jsfiddle.net/KPCh4/4/
( menghapus beberapa
if
kode sisa yang rusak )sumber
{{#each this}}
adalah bentuk yang benar.Setang dapat menggunakan larik sebagai konteksnya. Anda dapat menggunakan
.
sebagai root data. Jadi, Anda dapat melakukan loop melalui data array Anda dengan{{#each .}}
.sumber
Menggunakan
this
dan{{this}}
. Lihat kode di bawah ini di node.js:Keluaran log konsol:
sumber