使用Meteor从Mongodb集合调用handlebars helper时没有这样的模板错误

时间:2014-01-11 23:46:28

标签: mongodb meteor handlebars.js

我有一个HTML模板,我希望使用把手助手显示存储在mongo对象中的值。

HTML - 我想将answer1显示为存储在mongo“Question1”下的字符串

<template name="preferencesView">
<div class="preferences">
    <h3>Here are your preferences</h3>

        <p> Answer to question 1 <a>{{> answer1}}</a></p><br>
        <p> Answer to question 2 <b>{{> answer2}}</b></p><br>

    </div>

</template>

这是我的.js助手。 (为什么我的HTML文档中的{{answer1}}无法将answer1存储为模板?)

Template.preferencesView.helpers = ({
answer1: function () {
    return Preferences_col.find({userId: Meteor.userId()}
        );
}
});

另外 - 我是否在上面的助手中使用正确的mongo调用来查找我需要的数据? (问题1)以下是在表单提交事件中创建的示例。

{ "Question1" : "Yes", "Question2" : "Yes", "userId" : "hqWJNWLjwfggJtbPi", "submitted" : 1389406102126, "_id" : "fWEpMXX4w9wfzLg5g" }

当我在终端中运行meteor时,它不会遇到任何错误。但是在我的浏览器控制台中,我得到“Deps重新计算的例外:错误:没有这样的模板'answer1'”

PS - 这是我在Stackoverflow上的第一篇文章,所以如果您需要更多信息,请告诉我!

1 个答案:

答案 0 :(得分:1)

如果我是对的,你说错了。调用模板与{{> templateName}}一起使用,而调用助手则使用{{helperName}}调用。此外,不是返回find查询的结果,而是返回findOne查询的结果,作为find查询的结果,即使大小仅为1,也将是有点儿马车。