Saya menggunakan fungsi templating underscore.js dan telah melakukan templat seperti ini:
<script type="text/template" id="gridItem">
<div class="griditem <%= gridType %> <%= gridSize %>">
<img src="<%= image %>" />
<div class="content">
<span class="subheading"><%= categoryName %></span>
<% if (date) { %><span class="date"><%= date %></span><% } %>
<h2><%= title %></h2>
</div>
</div>
</script>
Seperti yang Anda lihat, saya memiliki pernyataan if di sana karena semua model saya tidak akan memiliki parameter tanggal. Namun cara melakukan ini memberi saya kesalahan date is not defined
. Jadi, bagaimana saya bisa melakukannya jika pernyataan di dalam template?
:nth-child(even)
dan:nth-child(odd)
pemilih CSS, tidak mengubah template Anda.Jika Anda lebih suka pernyataan pendek jika lain, Anda dapat menggunakan singkatan ini:
Ini berarti menampilkan id jika valid dan kosong jika tidak.
sumber
_.template
sisipkan;
di awal setiap tag kode yang dikompilasi. Dengan demikian, ia dapat menangani tag yang melanggar antar pernyataan, tetapi tidak di dalam ekspresi. Bandingkan;if(a){b;}else{c;}
dengan;a?b;:c;
.Tergantung pada situasi dan atau gaya Anda, Anda mungkin juga ingin menggunakan cetak di dalam
<%
%>
tag Anda , karena memungkinkan untuk output langsung. Suka:Dan untuk cuplikan asli dengan beberapa rangkaian:
sumber
Ini adalah check if / else yang sederhana di underscore.js, jika Anda perlu menyertakan cek nol.
sumber
_.isEmpty()
Menanggapi blackdivine di atas (tentang cara melucuti hasil seseorang), Anda mungkin sudah menemukan jawaban Anda (jika demikian, memalukan Anda karena tidak berbagi!), Tetapi cara termudah untuk melakukannya adalah dengan menggunakan operator modulus. katakanlah, misalnya, Anda bekerja dalam for for:
Dalam loop itu, cukup periksa nilai indeks Anda (i, dalam kasus saya):
Melakukan ini akan memeriksa sisa indeks saya dibagi dua (beralih antara 1 dan 0 untuk setiap baris indeks).
sumber
Anda dapat mencoba _ .Undefined
sumber
date
tidak ada sama sekali. Anda benar-benar membutuhkannyatypeof
dalam kasus ini, meskipun akan lebih baik menggunakan variabel bernama ketika kita sedang mengetik data template.Dari sini :
"Anda juga bisa merujuk ke properti objek data melalui objek itu, alih-alih mengaksesnya sebagai variabel." Artinya untuk kasus OP ini akan berfungsi (dengan perubahan yang jauh lebih kecil daripada solusi lain yang mungkin):
sumber
Untuk memeriksa nilai nol yang dapat Anda gunakan
_.isNull
dari dokumentasi resmiMengembalikan nilai true jika nilai objek adalah nol.
sumber