Objek saya terlihat seperti ini:
['foo','bar','baz']
Dan saya ingin menggunakan template kumis untuk menghasilkan sesuatu seperti ini:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
Tapi bagaimana caranya? Apakah saya benar-benar harus mengubahnya menjadi sesuatu seperti ini dulu?
{list:['foo','bar','baz']}
javascript
mustache
Greim
sumber
sumber
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
{{.}}
,,{{1}}
atau yang serupa di kumis (5).Saya memiliki masalah yang sama pagi ini dan setelah sedikit percobaan saya menemukan Anda dapat menggunakan {{.}} Untuk merujuk ke elemen saat ini dari sebuah array:
sumber
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
Berdasarkan jawaban @ danjordan, ini akan melakukan apa yang Anda inginkan:
kembali:
sumber
{a:'foo',b:'bar',c:'baz'}
... Bagaimana melakukan referensi anonim saat iterationg atas objek?Berikut adalah contoh untuk merender array multi-dimensi dalam sebuah template:
Contoh 1
Contoh 2
Untuk uji coba, simpan contoh di atas dalam file bernama 'test.js', jalankan perintah berikut di baris perintah
sumber
Saya tidak berpikir kumis bisa melakukan ini! (secara mengejutkan) Anda dapat mengulang daftar objek, lalu mengakses atribut dari setiap objek, tetapi Anda tidak dapat mengulang daftar nilai sederhana!
Jadi, Anda harus mengubah daftar Anda menjadi:
dan template Anda akan menjadi:
Bagi saya, ini sepertinya masalah yang parah dengan Mustache - sistem template apa pun harus dapat mengulang daftar nilai sederhana!
sumber