2012-06-21 18 views
20

kullanarak listedeki ilk öğeyi göster Ben bıyık şablon motorunu kullanıyorum ve sadece ilk öğeyi uzun bir listede görüntülemek istiyorum ancak bunu yapmak için dokümanlar bulamıyorum?sadece Bıyık

Ben kullanırsanız:

{{# links}}<a href="{{& url}}">{{& title }}</a>{{/ links}} 

i ancak ben sadece ilki, görüntülenen kolay geliyor ama bu konuda hiçbir dokümana bulamıyorum olmak istiyorum, tüm bağlantıları olsun. Bıyık sahiptir

+0

doğru biri olarak şu cevabı ayarlayabilir miyim? http://stackoverflow.com/a/17950970/171711 – Coyote

cevap

36

Bu çözüm (sadece) Mustache.js yeni sürümü ile çalışıyor:

mustache.render("{{a.0}}", {a: ['hi','world']}) 
=> 'hi' 
+1

Bu, şimdi doğru cevap olarak ayarlanmalıdır. – Coyote

+0

Son durumda, dizide kaç tane itensin olduğunu bilmiyorsak ne olur? – Periback

2

docs itibaren, mantığı yok:

Biz "mantığı-az" diyoruz hayır ifadeleri ise, başka maddeleri veya döngüler için var çünkü. Bunun yerine sadece etiketler var. Bazı etiketler yerine bir değer, bazıları hiçbir şey ve diğerleri bir dizi değerle değiştirilir. Bu belge farklı bıyık türlerini açıklar.

Peki aslında istediğiniz bir if link is the first yapmak için bir mekanizmadır - böylece, yoksa olduğunuz zamanlarda olduğu gibi Veri yığınının ekleyerek verilerin yalnızca 1 elemanını koyarak, veri tarafında halledebilirim size verilerinizi koyarak display gibi değer katmak ve inline veya şablonunda sonra 'yok' değerine ayarlayın yapın:

{{# links}}<a href="{{& url}}" style="display: {{display}};">{{& title }}</a>{{/ links}} 

sonra da geç, bazı style.display değiştirmek Sayfası komut dosyası çağırabilirsiniz kullanıcı veya uygulama eylemi.

İlk başta bunlar, bu özel şablon için data = data[0]'u ayarlamak daha kolay olabilir. Sorun şu ki, bu listeyi bir noktada kullanmak isteyeceğinden, daha fazla kullanımınızı görmemiz gerektiğini ve verinin nereden geldiğini yorumlamak isteyeceksiniz.

+0

Bunun için teşekkürler ... Senin söylediklerini görebiliyorum ama garip görünüyor. Ön-render modelini önerdiğini ve değiştirdiğini yaptım. Teşekkürler – Alex

+0

Evet, fikir şu ki, Bıyık hızlıdır, ancak diğer şablon kütüphanelerinin mantıksal yüküne sahip değildir. Bıyık ihtiyaçlarınızı karşılamıyorsa diğer şablon kütüphanelere de bakabilirsiniz. Burada iyi bir tartışma var: http://www.quora.com/JavaScript/What-is-the-best-JavaScript-templating-framework-and-why – artlung

1

@Millad neredeyse benim için çalıştı sunulan çözüm. Handlebars.js kullanarak parantez kullanmak zorunda kaldım.

{{ a.[0] }} 

=> merhaba

res.render('view', { a: ['hello', 'world'] })