我不能在Meteor模板的助手中使用我的出版物

时间:2016-02-13 00:04:29

标签: mongodb meteor

我在服务器端定义了以下出版物:

  Meteor.publish('observedQuestionsFeed',function(){
        _self = this;
        return Questions.find({
            observedByUsers : {$exists: true,$elemMatch: {$eq:_self.userId}}});
    });

返回我需要的东西;

然后我在我的模板中定义了对该出版物的订阅,如下所示:

Template.observedQuestions.onCreated(function(){
    var self = this;
    self.autorun(function(){
        self.subscribe('observedQuestionsFeed');
    });
});

但我不能在我的助手中使用该出版物,因为我需要重复我理解的相同查询,但$ eq无法识别;

我说:

Template.observedQuestions.helpers({
    observedQuestions : function(){
        questions =  Questions.find({
            observedByUsers : {$exists: true,$elemMatch: {$eq:Meteor.userId()}}});
        return questions;
    }
});

由于$ eq无法识别而无效。 我想在这个特定的模板中使用这个非常具体的出版物。我该怎么做? (observedByUsers字段是一个简单的usersIds数组,或者在我的mongo集合中未定义)

1 个答案:

答案 0 :(得分:0)

在您的发布功能中,您已经将记录过滤到您想要的内容。例如,如果这是五条记录,那么您只需将这五条记录发送给客户端。因此你应该能够做到:

Template.observedQuestions.helpers({
    observedQuestions : function(){
        return Questions.find();
    }
});