我有一个集合(Collection2包):

tickets = new Mongo.Collection("tickets");


我想通过模板显示“所有用户”票证(如果管理员已登录),否则仅显示当前用户票证。

我的服务器代码(流星规则包):

Meteor.publish('tickets', function(){
    if (Roles.userIsInRole(this.userId, ['admin'])){
        return tickets.find({},{sort:{deadline: 1}});
    }else{
        return tickets.find({_id: this.userId}, {sort:{deadline: 1}});
    }
});


我的客户代码:

Template.dashboard.helpers({
  tickets: function () {
    Meteor.subscribe('tickets');
  });


模板没有任何反应...我做错了什么?

最佳答案

您的模板助手必须返回实际数据,但是在您的代码中您什么也不会返回,只需订阅票证即可。

Template.dashboard.helpers({
  tickets: function () {
    // return a cursor fetching all tickets that were pushed to the client
    // thanks to the subscription
    return tickets.find();
  }
});


根据您的需求,您可能只想在订阅准备就绪时使用iron:router来显示仪表板,否则将首先不显示它。

关于javascript - meteor 发布:管理员可以查看所有数据,仅用户可以查看他的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26099446/

10-10 10:51