Saya mencoba menentukan indeks suatu item dalam array di dalam template setang:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
menggunakan ini:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Jika hal di atas tidak memungkinkan, bagaimana cara saya menulis pembantu yang dapat mengakses item spefic di dalam array?
javascript
handlebars.js
lukemh
sumber
sumber
Expecting 'ID'
kesalahan dengan {{user.links.websites.1}} atau {{user.links.websites.0}}{{ websites.[0] }}
.Berikut ini, dengan titik tambahan sebelum indeks , berfungsi seperti yang diharapkan. Di sini, tanda kurung adalah opsional ketika indeks diikuti oleh properti lain:
Namun, tanda kurung diperlukan dalam:
Dalam yang terakhir, menggunakan nomor indeks tanpa tanda kurung akan mendapatkan satu:
Sebagai tambahan: tanda kurung (juga) digunakan untuk sintaks segmen-literal , untuk merujuk ke pengidentifikasi yang sebenarnya (bukan nomor indeks) yang jika tidak akan valid. Lebih detail dalam Apa itu pengidentifikasi yang valid?
(Diuji dengan Setang di YUI.)
2.xx Pembaruan
Anda sekarang dapat menggunakan
get
helper untuk ini:meskipun jika Anda mendapatkan kesalahan tentang indeks yang harus berupa string, lakukan:
sumber
{{#with people.1}}
solusi bekerja untuk saya, menggunakancom.github.jknack:handlebars:4.1.2
.sumber
Jika fitur tidak berdokumen bukan permainan Anda, hal yang sama dapat dilakukan di sini:
Kemudian di templat
Saya menulis di atas sebelum saya mendapatkan
Saya tidak bisa melihat satu terlalu jauh dengan setang tanpa menulis pembantu Anda sendiri.
sumber
Jika Anda ingin menggunakan variabel dinamis
Ini tidak akan berfungsi:
Yang perlu Anda lakukan:
lihat pembantu pencarian setang dan setang subekspresi .
sumber
Silakan coba ini, jika Anda ingin mengambil pertama / terakhir.
sumber
Saat Anda mengulang dalam array dengan
each
dan jika Anda ingin mengakses array lain dalam konteks item saat ini Anda melakukannya seperti ini.Berikut adalah contoh datanya.
Ini adalah setang untuk mendapatkan item pertama dalam
attr
array.Ini akan menampilkan
sumber
this
akan berfungsi sebagai gantinyathis.[0]
Sintaks berikut juga dapat digunakan jika array tidak bernama (hanya array dilewatkan ke templat):
sumber
Dalam kasus saya, saya ingin mengakses array di dalam pembantu kustom seperti itu,
Yang tidak berhasil, tetapi jawaban yang disarankan oleh @julesbou berhasil.
Kode kerja:
Semoga ini membantu! Bersulang.
sumber