如何在emberjs中仅为handlebars foreach循环中的第一个元素设置类

时间:2017-02-01 16:53:21

标签: javascript ember.js handlebars.js

我正在开发一个emberjs应用程序,它将根据我的模型动态创建n个按钮。为此,我在模板中使用foreach循环遍历模型,并为模型中的每个元素创建一个按钮。

{{#each model.zones as |zone|}}
       <li><a id="{{zone.zone_id}}" {{action 'setData' zone.currenttemp zone.setpoint zone.mode zone.zone_id on='click'}} class="zones">{{zone.zone_name}}: {{zone.currenttemp}}&deg;F</a></li>
{{/each}}

每个按钮都属于“区域”类,但我想只在应用程序加载时第一个按钮成为“活动”类的一部分。据我所知,emberjs把手不支持@first运算符,所以我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

each块附带index变量,您可以与if内联帮助器结合使用

{{#each model.zones as |zone index|}}
       <li><a id="{{zone.zone_id}}" {{action 'setData' zone.currenttemp zone.setpoint zone.mode zone.zone_id on='click'}} class={{if index 'zones' 'active'}}>{{zone.zone_name}}: {{zone.currenttemp}}&deg;F</a></li>
{{/each}}

如果您想要进行其他检查,则可以安装ember-truth-helpers插件。

class={{if (eq index 0) 'active' 'zones'}}