2016-02-01 11 views
7

Mam listę zadań i chcę załadować listę odpowiednich komentarzy po kliknięciu jednego z zadań. Żelazko kod Router:Kontekst danych dostępu meteorów w onCreated

Router.route('/taskComments/:_id', function() { 
     var item = Tasks.findOne(this.params._id); 
     this.render('commentList', {data: item}); 
    }, 
    { 
     name: 'taskComments', 
     fastRender: true 
    } 
); 

pomocnicy Szablon:

Template.commentList.helpers({ 
    comments: function(){ 
     return Comments.find({taskID: this._id}); 
    }); 

jestem w stanie uzyskać dostęp do identyfikatora zadania (this._id) w powyższym fragmencie, ale nie wydaje się, aby pracować dla onCreated:

Template.commentList.onCreated(function(){ 
    this.subscribe("comments",this._id); 
}); 

Kiedy pocieszam się zalogować to daje mi następujący obiekt:

enter image description here

Zauważ, że nie ma _id a dane również są puste.

Odpowiedz

7

Możesz użyć Template.currentData() wewnątrz tego wywołania zwrotnego, aby uzyskać dostęp do kontekstu danych reaktywnych instancji szablonu. Obliczenia są automatycznie zatrzymywane po zniszczeniu szablonu.

Template.commentList.onCreated(function(){ 
    var self = this; 
    var dataContext = Template.currentData() 
    self.subscribe("comments",dataContext._id); 
}); 
Powiązane problemy