Meteor:单个 post 视图,通过 id 和流路由器未解析来自 collection 的任何数据

Meteor: single post view, via id and flow router is not parsing any data from the collection

我试图通过单击显示 'see more' 的 link 从我的 #each 项目循环中打开一条记录到它自己的视图中,这将带我到单篇文章。我设置了我的 Flow 路由器并使其正常工作,但我看不到应该输入的数据。

单篇文章的模板助手如下所示

Template.collectionSingle.helpers({
    articles: function () {
      var id = FlowRouter.getParam('_id')
      return theCollection.findOne({_id: id});
    }
  });

}

我的路线是这样的

FlowRouter.route('/collection/:_id', {
    name: 'collection',
    action() {
        BlazeLayout.render("AppLayout", {main: "collectionSingle"});
    }
});

模板 "collectionSingle" 看起来像这样

<template name="collectionSingle">
<h1>{{title}}</h1>
<h1>This is a test</h1>
  <img src="{{thumbnail}}" alt="" />
</template>

当我导航到 http://localhost:3000/collection/thePublication-0 我只看到测试消息 'This is a test',但我没有看到 {{title}} 和缩略图。

此外,当我改变时:

return theCollection.findOne({_id: id});

给我的另一个 collections :

return OtherCollection.findOne({_id: id});

http://localhost:3000/collection/thePublication-0 

保持不变。

我怎样才能成功地为我的每篇文章创建一个单独的文章页面,并让它们 link 使用流量路由器正确编辑?

您需要实际使用返回数据上下文的模板助手:

<template name="collectionSingle">
<h1>{{title}}</h1>
<h1>This is a test</h1>
{{#with articles}}
  <img src="{{thumbnail}}" alt="" />
{{/with}}
</template>

由于您的 articles 助手 returns 您使用了一个文档 {{#with articles}}。如果它返回一个游标或数组,您将使用 {{#each articles}} 对其进行循环。通常的约定是前者用单数形式,后者用复数形式。