访问数据库查询的内容

时间:2012-05-02 15:43:05

标签: meteor

我必须遗漏一些必要的东西,但这是我的问题。我有一个包含'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会引发错误。

我必须忽略一些基本的东西。谢谢。

1 个答案:

答案 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>