2014-04-08 12 views
10

Bir yorum işlevi kullanarak bir uygulama üzerinde çalışıyorum. Bu, hem yorumların yapıldığı bir koleksiyona hem de yorum koleksiyonunun kendisine abone olmak zorunda kalıyor.Demir yönlendiricide çoklu abonelikler

<template name="bookView"> {{> book}} {{> comments}} </template>

this.route('book', { 
    path: '/book/:_id', 
    template: 'bookView', 
    waitOn: function() { return Meteor.subscribe('book');}, 
    action: function() { 
     if (this.ready()){ 
      this.render(); 
     } 
     else 
      this.render('loadingTemplate'); 
    }, 
    data: function() {return Books.findOne(this.params._id);} 
}); 

Ama şimdi de o kitabı ait tüm yorumlar yüklemek istiyorum: Şimdi buna benzer. Yoksa Template.comments.rendered'deki yorumların aboneliğini ele almalı mıyım?

cevap

27

Evet, iki yolunuz var:

Denetleyicide Mantık. Bir dizi ile birden çok koleksiyona abone olabilirsiniz. Bu, tüm yorumları anında gösterdiğinizde böyle olacaktır. Kullanıcı tarafından talep edilene kadar yorumları göstermek istemezseniz, Başka bir yolu takip edebilirsiniz: buttonclickbookId'u bir Oturum değişkenine bookId olarak ayarlayabilirsiniz. Sizden, Session değişkeninizde sağlanan bookId ile yorum koleksiyonuna abone olan bir Deps.autorun fonksiyonu tanımlayabilirsiniz. Yorum şablonunda normal koleksiyon isteğini yapmanız yeterlidir. Bu konuda daha fazla ipucu gerekiyorsa bana bildirin.

+0

Aynı sorun var ve Data'da ayrıştırılmakta olan Data ile ilgili bazı problemler ve 0.8r işleyicinin istemcide bulunmasından önce oluşması. Aboneliklerin başarılı olup olmadığını nasıl kontrol edebilirim? – Tobi

+0

waitOn işlevi, veri alınana kadar her zaman bekler. Yani, aboneliğiniz her zaman başarılı olmalı. – chaosbohne

+0

Tempalate olaylarından kitap verilerine nasıl erişilir? – Sysrq147

5

waitOn işleviniz, abonelik tutamaçlarının bir dizisini döndürerek birden çok abonelik için bekleyebilir.

İlgili konular