有没有办法将参数传递给Meteor中的Handlebars模板?

vla*_*irp 6 handlebars.js meteor

我正在使用Meteor 0.5.2并试图解决我认为是一个应该有一个简单解决方案的明显模式.

我有一个模板,应该在每个模板实例中返回不同的数据块.

例如 - 我有一个显示电视节目的模板 - 按秀节目.

然后我需要显示具有不同数据的同一模板的两个实例 - 一个用于过去的节目,一个用于即将到来的节目.

所以我有一个电视节目模板:

<template name="tv_program">
   {{#each shows}}
   ...
</template>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想做类似的事情:

{{> tv_program past_shows}}
...
{{> tv_program upcoming_shows}}
Run Code Online (Sandbox Code Playgroud)

将参数传递给tv_program模板实例,我可以从JavaScript中读取并调整mongo查询.

目前我已经复制/粘贴了我的模板/ js代码并调整了mongo查询,但必须有更好的方法.

我查看了带有参数的partials/helpers,但这似乎不是我问题的解决方案.

谢谢,弗拉基米尔

Rah*_*hul 6

你正在以错误的水平接近问题.您应该告诉您的模板如何从代码中执行操作,而不是尝试告诉您的代码如何从模板中执行操作.例如:

Template.past_shows.shows = function() { return shows(-1); }

Template.upcoming_shows.shows = function() { return shows(1); }

function shows(order) {
  return Shows.find({}, {$sort: order});
}

<template name="past_shows">
  {{#each shows}}
    {{> show}}
  {{/each}}
</template>

<template name="upcoming_shows">
  {{#each shows}}
    {{> show}}
  {{/each}}
</template>

<template name="show">
  <li>{{_id}}: {{name}}</li>
</template>
Run Code Online (Sandbox Code Playgroud)