2010-12-31 22 views
7

Yeni jQuery şablon eklentisi koşullu (üçlü) operatörü destekliyor mu? Bir koşula bağlı olarak basit bir değer yazdırmak için, tek seçenek {{if}}/{{else}}?jQuery şablonunda koşullu işleç

Ben Evet, ${} şablon etiketinin içine keyfi fonksiyonları ve ifadeleri koyabilirsiniz <?=($reviewed ? 'ham' : 'spam')?>

cevap

16

benzer bir şey ilgileniyorum:

güncel veri öğesi üzerinde belirtilen alan (özellik) değerlendirir , veya belirtilen JavaScript işlevi veya ifade.

${reviewed ? 'ham' : 'spam'} 

Yani, böyle bir şablon yazabilirsiniz:

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
    <!-- Ternary operator to assign a class --> 
    <li class="${Year >= 1990 ? 'orange' : 'yellow'}"> 
     Title: ${Name}. 
     {{each Languages}} 
      ${$index + 1}: <em>${$value}. </em> 
     {{/each}} 
    </li> 
</script> 
böyle

Verilen JavaScript ve JSON veriler: Bu kadar 'turuncu' sınıfını uygular

var movies = [ 
{ 
    Name: "Meet Joe Black", 
    Languages: ["French"], 
    Year: 1990 
}, 
{ 
    Name: "The Mighty", 
    Languages: [], 
    Year: 1985 
}, 
{ 
    Name: "City Hunter", 
    Languages: ["Mandarin", "Cantonese"], 
    Year: 1994 
}]; 

$("#movieTemplate").tmpl(movies).appendTo("#movieList"); 

1990'lı yıllara eşit veya daha büyük olan filmler ve 1990'lardan daha kısa yıllar süren filmlere 'sarı' bir sınıf.

Buradaki örnek çalışma örneği: http://jsfiddle.net/andrewwhitaker/dY43s/

+0

Teşekkür ederim Andrew. –