Sorun şu ki, şablonunuzu JavaScript'e dönüştürürken Underscore, noktalı virgül sonlandırıcıları ekleyecektir. Yani, bu gibi basit switch
:
<% switch(x) { %>
<% case 11: %>
<button>
<% } %>
şöyle JavaScript haline gelir:
switch(x) { ;
case 11: ;
// something to output '<button>' goes here
} ;
Ama case
ifadeleri ve (yani switch(x) { ;
içinde ;
) boş bir ifade yer için bir JavaScript switch
ihtiyaçlarını gelmez yeter.
Ben sadece bir
if
geçmek ve daha ilginç problemlere geçmek istiyorum bu soruna herhangi aklı başında bir şekilde düşünemiyorum
:
<% if(UserType === 13) { %>
<button id="schoolButton" value="schools" class="gridChooser k-textbox">Schools</button>
<% } else if(UserType === 12) { %>
<button id="teacherButton" value="teachers" class="gridChooser k-textbox">Teacher</button>
<% } else if(UserType === 8) { %>
<button id="classButton" value="classes" class="gridChooser k-textbox">Classes</button>
<button id="testButton" value="tests" class="gridChooser k-textbox">Test</button>
<% } %>
Ayrıca iç-out ve kullanımını çevirir misin print
:
<% switch(UserType) {
case 13:
print('<button id="schoolButton" ...');
...
} %>
ama bu biraz çirkin (IMHO) bulunuyor. Ayrıntılar için _.template
documentation'a bakın. Bu noktalı virgül hile JavaScript bunları gerektirmez bile, if
ler bir alt çizgi şablona parantezler içermelidir neden de olduğunu
Not. Yani bu işe yaramaz:
<% if(pancakes) %>
<%= pancakes %>
ama bu irade: Aynı döngüler için geçerlidir
<% if(pancakes) { %>
<%= pancakes %>
<% } %>
.
Harika yanıt. Beklenen çözümün neden çalışmadığını açıkladığınız için teşekkür ederiz. –
@DanM: Teşekkürler. Şablonun derlenmiş halini araştırmak zorunda kaldım, bu yüzden bulduklarımı paylaşmam gerektiğini düşündüm: eğer açıklayamasam sonra anlayamıyorum, eğer anlamıyorsam o zaman doğru cevaplama hissediyorum. –