Saya menggunakan Setang untuk templating di proyek saya. Apakah ada cara untuk mendapatkan indeks iterasi saat ini dari pembantu "masing-masing" di Handlebars?
<tbody>
{{#each item}}
<tr>
<td><!--HOW TO GET ARRAY INDEX HERE?--></td>
<td>{{this.key}}</td>
<td>{{this.value}}</td>
</tr>
{{/each}}
</tbody>
javascript
handlebars.js
thunderboltz
sumber
sumber
Jawaban:
Dalam versi terbaru dari Handlebars index (atau kunci dalam hal iterasi objek) disediakan secara default dengan standar setiap helper.
cuplikan dari: https://github.com/wycats/handlebars.js/issues/250#issuecomment-9514811
Indeks item array saat ini telah tersedia untuk beberapa waktu sekarang melalui @index:
Untuk pengulangan objek, gunakan @key sebagai gantinya:
sumber
Uncaught SyntaxError: Unexpected token ,
@index
dan@first
sekarang didukung untuk setiap iterasi pada objek juga.{{@@index}}
Uncaught SyntaxError: Unexpected token ,
Ini telah berubah di versi Ember yang lebih baru.
Untuk array:
Sepertinya blok #each tidak lagi berfungsi pada objek. Saran saya adalah untuk menggulirkan fungsi pembantu Anda sendiri untuk itu.
Terima kasih atas tip ini .
sumber
Saya tahu ini sudah terlambat. Tetapi saya memecahkan masalah ini dengan Kode berikut:
Java Script:
HTML:
jika Anda ingin memulai indeks Anda dengan 1 Anda harus melakukan kode berikut:
Javascript:
HTML:
Terima kasih.
sumber
Di stang versi 3.0 dan seterusnya,
Dalam contoh khusus ini, pengguna akan memiliki nilai yang sama dengan konteks saat ini dan userId akan memiliki nilai indeks untuk iterasi. Refer - http://handlebarsjs.com/block_helpers.html di bagian block helpers
sumber
Array:
Jika Anda memiliki array objek ... Anda dapat beralih melalui anak-anak:
Benda:
Jika Anda memiliki objek bersarang, Anda dapat mengakses
key
objek induk dengan{{@../key}}
sumber
Dalam versi stang 4.0 dan seterusnya,
sumber