#each for Meteor.js模板

时间:2015-01-12 07:26:38

标签: javascript meteor meteor-blaze spacebars meteor-helper

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

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

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

我更愿意遍历用户的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});
}
});

我希望卡片在回答后消失,但如果循环被修复,该问题应该自行解决。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

确保执行以下操作:

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

<强> 2。在该文件中定义:

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

答案 1 :(得分:0)

我最终得到了某人在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]}});
}
});