使用模板如何使用{{attribute}}将一个'记录'与使用find()游标的#each进行比较?

时间:2012-05-15 12:18:15

标签: meteor

我知道使用模板可以显示多个文档,其属性如下:

// html
<template name="hello">
{{#each greetings}}
   {{message}}
{{/each}}
</template>

// js
Template.hello.greetings = function() {
   return Greetings.find();
}

其中显示了每个问候语文件的Greeting.message。

我的问题是如何仅将此模板用于一个文档? (包括没有可用的文件)

从javascript方面我会使用类似return Greetings.findOne({'id' : Session.get("greeting_id")});

的内容

但使用模板时:

<template name="hello">
   {{message}}
</template>

抛出错误:未捕获的TypeError:无法读取未定义的属性“message”

更新

现在我在JS方面使用它,使用下面@ tom-wijsman建议的模板:

Template.hello.greeting = function() {
   var greeting = Greetings.findOne({'id' : Session.get("greeting_id")})
   if (greeting)
       return greeting;
   return {message: ""};
}

1 个答案:

答案 0 :(得分:8)

Handlebars.js也有一个#with helper

<template name="hello">
    {{#with greeting}}
        {{message}}
    {{/with greeting}}
</template>

Template.hello.greeting = function() {
    return Greetings.findOne({'id' : Session.get("greeting_id")});
}