【问题标题】:Meteor each loop within template流星模板中的每个循环
【发布时间】:2015-06-06 14:22:58
【问题描述】:

所以我正在寻找对模板和此类工作方式的一些了解。

我有一个包含名为 movies 的模板的 movie.html 文件,其中有一个返回集合的 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,所以我将主(也是唯一的)页面移动到模板以进行路由,这打破了我的循环列表.

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

【问题讨论】:

    标签: templates meteor iron-router


    【解决方案1】:

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

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

    我们在body 标签上调用这个&lt;template name="list"&gt;?你有这样的东西。

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

    或者你有这样的东西。

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

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

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

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

    【讨论】:

    • 改变助手工作,我从来没有想过需要更新!我正在使用下面来显示页面Router.map(function(){ this.route('list', {path: '/'} ); });
    猜你喜欢
    • 1970-01-01
    • 2016-05-10
    • 2017-03-31
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多