【问题标题】:How work with statements in meteor template如何使用流星模板中的语句
【发布时间】:2014-07-07 20:46:39
【问题描述】:

我喜欢使用流星,但我有一个问题我找不到解决方案。

在模板文件中我有这个代码:

<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}
    });
};

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

期待答案。

【问题讨论】:

  • 这是你的整个模板吗?您可以发布任何将填充您的模板的客户端代码吗?

标签: javascript templates meteor


【解决方案1】:

空格键(meteor 的模板库),很像 Handlebars(它基于)不执行任意表达式,比如 angular.js 的模板。

如果您将尝试写入的语句更改为辅助方法,就像这样(随意选择更好的名称!):

<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 变量发生变化时,它就会响应式更新。

【讨论】:

  • 也许值得注意的是,angular.js 的模板也不执行原始 javascript,但它们确实执行 javascript-like 语句 - 我只是将它用作 js 的示例确实允许内联语句的模板库。
  • 你是英雄。谢谢!!
猜你喜欢
  • 2015-09-13
  • 1970-01-01
  • 2015-02-08
  • 2018-05-19
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2018-03-03
相关资源
最近更新 更多