【问题标题】:Meteor: Using while loop in TemplateMeteor:在模板中使用 while 循环
【发布时间】:2014-09-13 10:35:32
【问题描述】:

如何在流星火焰中使用 while 循环? 我尝试使用{{unless}},但没有奏效。
这是我尝试过的:

<template name="homePage">
    <h2>Welcome to home page! </h2>
    {{#unless numberOfDays 0}}
        <span>hi</span>
        {{numberOfDays--}}
    {{/#unless}}
</template>

它根本不起作用。

【问题讨论】:

    标签: javascript meteor meteor-blaze


    【解决方案1】:

    空格键中没有#while,这是meteor-blaze中默认的模板引擎。

    #unless 关键字是一个否定的#if,它以某事不真实为条件。除非块不是循环,它只能运行一次。就像如果,该块将运行或不运行。如果条件不真实,#unless 就会运行。

    唯一的循环结构是#each。您可以通过计算模板外部的结果并将它们放置在数组变量中来模拟 for 或 while 循环的行为。在模板中,对数组变量调用#each。

    虽然编写自定义的handlebars block helper 可用于进行自定义迭代,例如while 循环,但Meteor 的空格键是handlebars 代码的一个分支,可能需要稍微不同的语法。

    对于大多数简单的用途,#each 就足够了。重新格式化数据通常可以让#each 以自然的方式使用。

    来自Spacebar docs

    #每个

    #each 模板标签接受一个序列参数并为序列中的每个项目插入其内容,将数据上下文设置为该项目的值:

    <ul> {{#each people}} <li>{{name}}</li> {{/each}} </ul>

    参数通常是 Meteor 游标(例如,collection.find() 的结果),但它也可能是纯 JavaScript 数组、null 或 undefined。

    可以提供一个“else”部分,如果在任何时候序列中有零个项目,则使用该部分(没有新的数据上下文)。

    【讨论】:

      猜你喜欢
      • 2012-04-15
      • 2021-07-18
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2016-12-31
      • 2013-03-15
      相关资源
      最近更新 更多