如何使用流星模板中的语句

时间:2014-05-19 19:10:45

标签: javascript templates meteor

我喜欢和流星一起工作,但我遇到了一个问题,我无法找到解决方案。

在模板文件中,我有以下代码:

<template name="klussenboard">
<h2>Klussen</h2>
  <div class="klussenboard">
     {{#each klus}}
    {{#if status=1}}
    <li>
    <a class="startlink" href="#"><img src="/images/starten.png"></a>
    </li>
    {{/if}}
    {{/each}}
</div>
</template>

这是js客户端代码

Template.klussenboard.klus = function () {
        return Klussen.find({"status": { $gt: 0 }}, {
        sort: {datum: -1}
    });
};

但这不起作用。如何在模板文件中执行语句?

期待回答。

1 个答案:

答案 0 :(得分:3)

Spacebars(meteor的模板库),就像Handlebars(基于它)一样,不会执行任意表达式,比如angular.js的模板。< / p>

如果你更改了你正在尝试写入辅助方法的语句,就像这样(随意选择一个更好的名字!):

<template name="klussenboard">
  <h2>Klussen</h2>
  <div class="klussenboard">
    {{#each klus}}
      {{#if isEnabled}}
        <li>
          <a class="startlink" href="#"><img src="/images/starten.png"></a>
        </li>
      {{/if}}
    {{/each}}
  </div>
</template>

然后,您可以在任何客户端.js文件中定义isEnabled帮助程序 - 例如,client/klussenboard.js,如下所示:

Template.item.isEnabled = function() {
  return this.status == 1;
}

因此,辅助函数中的this

这假设您处于status是变量的上下文中(根据您的问题,您是)

只要status变量发生变化,这就会被动地更新。