Meteor 模板中的每个循环

Meteor each loop within template

所以我正在寻找有关模板等工作原理的一些理解。

我 movie.html 文件中有一个名为 movies 的模板,还有一个 movie.js 帮助程序 returns 一个集合。

电影模板

<template name="movies">
   <li>{{title}}</li>
</template>

JS 助手

Template.body.helpers({
  movie: function () {
    return Movies.find({});
    }
  });

现在我有另一个模板可以做很多其他事情,但其中之一是遍历此列表并显示它。

列表模板

<template name="list">
    <ul>
        {{#each movie}}
            {{> movies}}
        {{/each}}
    </ul>
</template>

在这种情况下,列表不受数据欢迎。

但是,如果我将列表模板的内容移动到模板之外,并且只是在 main.html 上,效果很好!

这是我过去使用它的方式,但我已经开始使用 Houston Admin Package,它使用 Iron:Router,所以我将主要(也是唯一)页面移动到模板以用于路由目的,这打破了我的循环列表。

我确定我漏掉了一些小东西,但我想不通。

您正在使用列表模板中的 {{#each movie}} 助手,因此请将 Template.helper 更改为 list 模板

Template.list.helpers({
  movie: function () {
    return Movies.find({});
    }
  });

我们是在 body 标签上调用这个 <template name="list"> 吗?你有这样的东西。

<body>
 {{> list}}
</body>

或者你有这样的东西。

<template name="layout">
 {{> yield}} <!-- since you are mentioning iron:route package -->
</template>

或者您有通往该列表模板的途径? localhost:3000/列表

Router.route('/movie-lists', function () {
  this.render('lists')
});

对于这 3 种情况中的任何一种,您都应该将 helper 指向您调用它的模板(在本例中为列表模板)