2013-08-05 12 views
7

Ben bir slayt yaratıyorum her - şöyle 3 resim her biri div, yani internet etrafında kodindeksi ve modülo köz ve gidonun

<div> 
    <img /> 
    <img /> 
    <img /> 
</div> 

</div> 
    <img /> 
    <img /> 
    <img /> 
</div> 

Yok sorunsuz çalışır -

https://github.com/johanpoirier/resthub-backbone-stack/commit/8a318477d56c370d2a0af4da6eae9999c7bb29da

http://jaketrent.com/post/every-nth-item-in-handlebars-loop/

http://rockycode.com/blog/handlebars-loop-index/

ve Evet, burada yığın taşmasıyla ilgili yanıtlar dahil.

Bu geçerli dönemde (Ember/Handlebar sürümü) mükemmel çalışan bazı kodlar sağlayabilir mi? i

{{#each model}} 
    {{if index % 3 == 0}} 
    {{/if}} 
{{/each}} 
+0

http baktı mı Kor V1.1.0 test

{{#each model itemViewClass="Ember.View"}} {{view.contentIndex}} {{/each}} 

: //stackoverflow.com/questions/8853396/logical-operator-in-a-handlebars-js-if-conditional/9405113#9405113 Özel koşullar yardımcılarını yazmak için birkaç örnek var. Ayrıca, * index * 'inin' – colymba

cevap

13

Ben index veya @index şablondan içinden çalışmadığını bulgu olmuştur böyle bir şey yapmak istiyorum böylece

Ben modelleri bir dizi var, ancak bir içinde onu erişebilirsiniz yardımcı.

Bu gösteriyor Burada bir örnek yaptık:

http://jsbin.com/egoyay/1/edit

Düzenleme: {{else}} blok

Gidon yardımcı gösteren cevaplamak için kod ekleme (non-Ember için kullanın):

Handlebars.registerHelper('ifIsNthItem', function(options) { 
    var index = options.data.index + 1, 
     nth = options.hash.nth; 

    if (index % nth === 0) 
    return options.fn(this); 
    else 
    return options.inverse(this); 
}); 

Kullanım:

<ol> 
{{#each model}} 
    <li> 
    {{#ifIsNthItem nth=3}} 
     Index is a multiple of 3 
    {{else}} 
     Index is NOT a multiple of 3 
    {{/ifIsNthItem}} 
    </li> 
{{/each}} 
</ol> 
+0

üzerinden ulaşması, eşyalarınızın hatasız çalışmasıdır. Çok teşekkür ederim! – David

+1

Güzel. 'Options.data.view.contentIndex''in mevcut olmadığını, ancak' options.data.index' aracılığıyla dizine erişmenin işe yaradığını buldum. – kontur

+0

Bu harika çalıştı. Aynı şeyi nasıl yaparsınız, ama başka bir şeye karışıma ekleme kabiliyetine sahip misiniz? '{{ifIsNthItem nth = 3}} bunu yapın {{else}} başka bir şey yapın {{/ ifIsNthItem}}' – carter

2

Eğer each yardımcısında itemViewClass belirtirseniz, o zaman bir her öğe için görünüm ve set ContentIndex özelliğini oluşturur:

+1

ÖğeyiViewClass belirtmeden, _view.contentIndex'i kullanabiliriz. Ama bu #each içindeki #if yardımcısının içinde çalışmıyor. – Champ

İlgili konular