2016-04-06 6 views
0

Bir grup resim galerisine sahip bir sayfam var. Her galeri böyle bir menü bağlantı yoluyla erişilebilir:Meteor Şablonu - kod fazlalığını önlemek için etkinlikleri devral veya dışarı aktar

Gallery1 Gallery2 Gallery3 

Her galeri öne tıklama gibi kendi işlevselliği ancak belirli işlevleri vardır ve paylaştıkları bardward tıklayın.

dosya yapısı şu şekildedir:

Gallery_Layout.html 
Gallery_Layout.js 
Gallery1.html 
Gallery1.js 
Gallery2.html 
Gallery2.js 
Gallery3.html 
Gallery3.js 

FlowRouter ile her Galeri Düzeni işlenir.

Gallery1.js:

Template.gallery1.events({ 
    'click .btn-backward' (event, template) { 
     // show last picture 
    }, 
    'click .btn-forward' (event, template) { 
      // show next picture 
    } 
}); 

Gallery2.js: Şu anda paylaşılan fonksiyonlar her Galeriler js dosyasında gereksiz olduğunu söyledi .. vb

Template.gallery2.events({ 
    'click .btn-backward' (event, template) { 
     // show last picture 
    }, 
    'click .btn-forward' (event, template) { 
      // show next picture 
    } 
}); 

Ve

Bu etkinlikleri ana Şablon olarak adlandırın (örneğin, Gallery_Layout.js), işe yaramıyor.

Yardımcılar için küresel yardımcının olduğunu biliyorum, etkinlikler için bir kolye var mı?

Soru: Şablon olaylarını nasıl dış kaynak kullanabilir veya devralabilir ve bunları yeniden kullanılabilir bileşenler olarak kullanabilirim?

Şimdiden teşekkürler!

Template.body.events({ 

}); 

Her şablon gövdesinin içine yüklenir:

Muff

cevap

1

1) vücut şablonunu kullanabilirsiniz.

2) Seçiciler ile katlanabilir. Galeri, tüm galerilere ait bir HTML sınıfıdır,

Template.Gallery_Layout.events({ 
'click .gallery' (event, instance) { 

let gallery = event.target; 

// execute code on gallery. 


} 

}); 
İlgili konular