我正在尝试在Jobs集合中发布特定于文档作者的数据。我的路由是专门为每个独特的作者设置的,然后我通过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' } );
}
});
答案 0 :(得分: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"));
}
});