我必须遗漏一些必要的东西,但这是我的问题。我有一个包含'title'和'content'字段的Documents集合。
当我导航到特定网址时,比方说,
http://localhost:3000/document/33ea5676-4f8f-4fe4-99d5-fe094556933d
我从网址抓取文档_id,通过Session.set('docID',_id)
存储它,然后想要显示文档的标题。我有一个模板:
<template name='document'>
<h2>My document is called {{document.title}}</h2>
</template>
然后在我的client.js文件中,我有:
Template.document.document = function() {
doc = Documents.findOne({'_id':Session.get('docID')});
return doc;
}
但是这不起作用:我收到了错误:
Cannot read property 'title' of undefined
因为当然,在访问字段之前,必须从数据库中检索文档。如果我打电话,
Template.document.document().title
从控制台,我检索标题。我尝试制作一个标题特定的功能,
Template.document.title = function() {
doc = Documents.findOne({'_id':Session.get('docID')});
return doc.title;
}
但是这也遇到了同样的问题。数据库检索条目之间似乎存在延迟,同时调用doc.title
会引发错误。
我必须忽略一些基本的东西。谢谢。
答案 0 :(得分:1)
尝试在模板中使用“with”:
Template.document.document = function() {
return Documents.findOne({'_id':Session.get('docID')});
}
<template name='document'>
{{#with document}}
<h2>My document is called {{title}}</h2>
{{/with}}
</template>