Meteor:如何在一个视图或页面上成功显示来自两个或多个mongo集合的数据?

时间:2016-06-08 23:21:24

标签: mongodb templates meteor views

我有两个名为“theCollection”和“StreamingCollection”的mongo集合代表两类数据。我想在我的主页上的单独集合中显示两组数据,在较大的模板“Home”中显示两个相应的模板“red”和“blue”,如下所示。

数据在日志中传递,因此发布和订阅工作正常,当我将帮助器从template.red.helpers更改为template.Home.helpers时,数据显示,但只显示一个集合。

如何在一个页面上成功显示两个或多个集合中的数据?

下面显示了我的主页,其中只有一个模板“Home”,这个模板包含两个#each列表,用于不同的集合,红色和蓝色,它们本身就是模板。

errors

红色和蓝色模板就像这样

<template name="Home">

<section>
    <div>
      <ul>
      {{#each articles}}
        {{> red}}
      {{/each}}
    </ul>
  </div>
     <div>
      <ul>
      {{#each articles}}
        {{> blue}}
      {{/each}}
    </ul>
  </div>

</section>

这些是我的助手

<template name="red">
      <li>
    <div><img src="{{thumbnail}}"></div>
      <div>{{title}}</div>
  </li>
</template>

  <template name="blue">
     <li>
        <div><img src="{{thumbnail}}"></div>
          <div>{{title}}</div>
  </li>
</template>

1 个答案:

答案 0 :(得分:1)

你很亲密。您在{{#each articles}}模板中有两个home,但articles没有home帮助,因为您的帮助是在内部模板上定义的。只需将您的HTML更改为:

<template name="Home">
<section>
  <div>
    {{> red}}
  </div>
  <div>
    {{> blue}}
  </div>   
</section>
</template>

<template name="red">
<ul>
  {{#each articles}}
    <li>
      <div><img src="{{thumbnail}}"></div>
      <div>{{title}}</div>
    </li>
  {{/each}}
</ul>
</template>

<template name="blue">
<ul>
  {{#each articles}}
    <li>
      <div><img src="{{thumbnail}}"></div>
      <div>{{title}}</div>
    </li>
  {{/each}}
</ul>
</template>

关于html在子模板中与主人的关系,这是一个品味和风格的问题。您应该考虑您的模板可以在多个父模板中重用。对于{{#each }}循环,您通常需要考虑空列表的情况。