#each for Meteor.js 模板

#each for Meteor.js template

我正在努力让用户只看到他们尚未回答的问题。我已经设置好了,所以当用户回答问题时,它会用 questionsAnswered 更新他们的帐户并更新问题 usersTrueusersFalse 数组。我正在使用每个模板函数循环遍历我的问题集合以显示所有活动问题。

我试图向 .find({active: true}) 添加一些额外的参数,但这不起作用。

我的每个循环都有一个助手。我试过添加一个不起作用的 if else。

我更愿意遍历用户的 questionsAnswered 数组,看看他们是否已经回答了问题。

模板

<template name="questionCard">
{{#each questions}}
        <div id="{{_id}}" class="card">
            {{ que}}
        </div>
        <div>
            <a class="no option" href="#">No</a>
            <a class="yes option" href="#">Yes</a>
        </div>
{{/each}}
</template>

Javascript(助手)代码:

Template.questionCard.helpers({
'questions': function(){
    var currentUser = Meteor.userId();
    return QuestionList.find({active: true});
}
});

我希望卡片在他们回答后消失,但如果循环得到修复,这个问题应该会自行解决。

如有任何帮助,我们将不胜感激。

确保您执行以下操作:

1.创建服务器端文件,例如 server/publications.js,以保存发布声明

2。在该文件中定义它:

Meteor.publish("questionList", function() {
  return QuestionList.find({});
});

我最终从 crater.io 的某个人那里得到了一些帮助。我试图将信息添加到 javascript 端以检查 userId 是否不在数组中。我被介绍给 $nin 运算符,所以我的代码最终看起来像这样。

感谢您的回复!

Template.questionCard.helpers({
'questions': function(){
    var currentUser = Meteor.userId();
    return QuestionList.find({active: true, usersTrue: {$nin: [currentUser]}, 
    usersFalse: {$nin: [currentUser]}});
}
});