0

我正在尝试在我的工作集合中发布特定于文档作者的数据。我的路线是专门为每个独特的作者设置的,然后我通过 FlowRouter.getParam 获得,但它仍然不会产生任何数据。我订阅了“refiJobs”出版物,但我仍在苦苦挣扎。感谢阅读 - 非常感谢您的帮助!

我的出版物

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"));
  }
});

我的路线:

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

1 回答 1

1

路由参数在您创建出版物的服务器上不直接可用。您需要通过订阅将路由参数传递给您的出版物,如下所示:

客户:

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

服务器:

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"));
  }
}); 
于 2016-07-27T05:42:10.310 回答