2016-07-27 11 views
0

Ich versuche, Daten speziell für den Autor eines Dokuments in meiner Jobs-Sammlung zu veröffentlichen. Meine Route ist speziell für jeden eindeutigen Autor eingerichtet, den ich dann über FlowRouter.getParam erhalte, aber er erzeugt immer noch keine Daten. Ich bin Abonnent der 'refiJobs'-Veröffentlichung, aber ich kämpfe immer noch. Danke fürs Lesen - Hilfe wird sehr geschätzt!Veröffentlichen von Daten basierend auf URL in Meteor mit Flow Router

Meine Publikation

Meteor.publish('refiJobs', function() { 
    if (Roles.userIsInRole(this.userId, 'admin')) { 
    var author = FlowRouter.getParam('author'); 
    return Jobs.find({author: author}); 
    } else { 
    this.error(new Meteor.Error(403, "Access Denied")); 
    } 
}); 

Meine Route:

authenticatedRoutes.route('/admin/:author', { 
    action: function() { 
    BlazeLayout.render('default', { yield: 'user' }); 
    } 
}); 

Antwort

1

Die Routenparameter auf dem Server nicht direkt verfügbar sind, wo Sie Ihre Publikation erstellen. Sie benötigen Routenparameter durch zu Ihrer Publikation über Ihr Abonnement passieren, wie folgt:

Auftraggeber:

Meteor.subscribe('refiJobs',FlowRouter.getParam('author')); 

Server:

Meteor.publish('refiJobs',(author)=>{ 
    check(author,String); // be sure to check the parameter(s) to your publication 
    if (Roles.userIsInRole(this.userId, 'admin')) { 
    return Jobs.find({author: author}); 
    } else { 
    this.error(new Meteor.Error(403, "Access Denied")); 
    } 
}); 
+0

Dank - genau das Richtige! – Mike