Meteor 使用模板如何使用{{attribute}}和一个';记录';与使用find()光标的#相比?

Meteor 使用模板如何使用{{attribute}}和一个';记录';与使用find()光标的#相比?,meteor,Meteor,我知道,使用模板可以显示多个具有以下属性的文档: // html <template name="hello"> {{#each greetings}} {{message}} {{/each}} </template> // js Template.hello.greetings = function() { return Greetings.find(); } 引发错误:未捕获的TypeError:无法读取未定义的属性“message” 更新 现在我在

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

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

// js
Template.hello.greetings = function() {
   return Greetings.find();
}
引发错误:未捕获的TypeError:无法读取未定义的属性“message”

更新 现在我在JS端使用它,使用下面@tom wijsman建议的模板:

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


{{{打招呼}
{{message}}
{{/打招呼}

Template.hello.greeting=function(){
return Greetings.findOne({'id':Session.get(“Greetings_id”)});
}

Bedankt//是的,我自己刚想出来。要克服的剩余问题是当findOne返回{}时呈现模板。我用返回{问候语:'}解决了这个问题。在这种情况下,请参阅问题中我的更新。@MichelLöhr:如果你想简写一下,你可以做
返回问候语吗?问候:{留言:}
但是你可能想检查是否有一个问候语,也许是
{{{{if greeting}}{{/if greeting}}
作为一个替代方案可能会起作用;我还没试过,但可能。。。
Template.hello.greeting = function() {
   var greeting = Greetings.findOne({'id' : Session.get("greeting_id")})
   if (greeting)
       return greeting;
   return {message: ""};
}