2

我一定遗漏了一些重要的东西,但这是我的问题。我有一个包含“标题”和“内容”字段的文档集合。

当我导航到特定的网址时,比如说,

http://localhost:3000/document/33ea5676-4f8f-4fe4-99d5-fe094556933d

我从 url 中获取文档 _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数据库检索条目与同时调用引发错误之间似乎存在延迟。

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

4

1 回答 1

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>
于 2012-10-03T22:50:10.120 回答