2012-08-06 20 views
6

jsRender'daki {{for}} döngüsü ile ilgili bir soru.jsBir döngü döngü <string>

demo karmaşık nesneler topluluğu içinden biz döngü gösterir ve özelliklerini görüntüler:

{{for languages}} 
    <div> 
     <em>{{>name}}</em> 
    </div> 
{{/for}} 

Ama ne benim languages sadece List<string> olur? Görüntülenecek {{>name}} olmayacaktır. Tek tek dize değerlerine nasıl başvurabiliriz?

Teşekkürler.

cevap

11

Döngüdeki tek tek değerlere erişmek için #data kullanabilmeniz gerekir.

+0

sadece meraktan çıkmış, bu belgelenmiş bir yöntem midir? –

+0

@mattlohkamp [burada] (https://www.jsviews.com/#paths) ("_' # data", "# view.data'_" için kısa) ve [burada] (https: : //www.jsviews.com/#[email protected]) ("_a görünümü, bu view_'i oluşturmak için kullanılan geçerli veri bağlamı olan bir data özelliğine sahiptir") –

+0

bağlamında bir örneğe gereksinim duyar –

18
{{#data}} 

Benim için çalışmadı.

şey değişmiş gibi görünüyor, bu benim için yaptığını budur:

{{>#data}} 
+1

">" kelimesinin ima edildiğini düşünün. – Syska

+1

{{: #data}} dizginizde bazı html etiketleri varsa ... – r2b2s

+0

@ r2b2s - aslında tam tersi. "HTML enjeksiyon saldırılarına karşı korunmak için, işlenmekte olan veriler tamamen güvenilir olmadığında, {{: ...}} yerine {{: ...}} etiketi kullanılmalıdır." - https://www.jsviews.com/#htmltag –

0

Ayrıca, bazı karşılaştırmalar yapmak istiyorsanız, aşağıdaki gibi bir kod kullanabilirsiniz:

{{if #data == 'xxx' || #data == 'yyy'}} 
... 
{{/if}} 

yılında senaryo.

2

Sen kullanmalıdır:

{{>#data}} veya {{>}} - (HTML kodlar)

{{:#data}} veya {{:}} - (non HTML) Örneğin

:

Diyelim senin languages nesnesi şöyle görünür:

var languages = ['en', 'sp', 'zh'];

{{for languages}} 
    <div> 
     <em>{{>}}</em> 
    </div> 
{{/for}} 

Çıkacaksınız içinde:

<div> 
    <em>en</em> 
</div> 
<div> 
    <em>sp</em> 
</div> 
<div> 
    <em>zh</em> 
</div> 

Dokümantasyon

#data