【问题标题】: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 以自然的方式使用。
#每个
#each 模板标签接受一个序列参数并为序列中的每个项目插入其内容,将数据上下文设置为该项目的值:
<ul>
{{#each people}}
<li>{{name}}</li>
{{/each}}
</ul>
参数通常是 Meteor 游标(例如,collection.find() 的结果),但它也可能是纯 JavaScript 数组、null 或 undefined。
可以提供一个“else”部分,如果在任何时候序列中有零个项目,则使用该部分(没有新的数据上下文)。