流星在模板中的每个循环

时间:2015-04-01 19:32:40

标签: templates meteor iron-router

所以我正在寻找关于模板和工作方式的一些理解。

我的movie.html文件中包含名为movies的模板,其中movie.js帮助程序返回一个集合。

电影模板

<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,因此我已将主页面(和唯一的页面)移动到模板中路由目的,打破了我的循环列表。

我确定我错过了一些小事,但我无法弄清楚。

1 个答案:

答案 0 :(得分:2)

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

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

我们在<template name="list">标记上调用此body?你有类似的东西。

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

或者你有类似的东西。

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

或者您有到该列表模板的路线?本地主机:3000 /列表

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

在这三种情况中,您应该将helper指向您调用它的模板(在本例中为列表模板)