我知道使用模板可以显示多个文档,其属性如下:
// 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: ""};
}
答案 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")});
}