我正在开发一个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}}°F</a></li>
{{/each}}
每个按钮都属于“区域”类,但我想只在应用程序加载时第一个按钮成为“活动”类的一部分。据我所知,emberjs把手不支持@first运算符,所以我不知道如何解决这个问题。
答案 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}}°F</a></li>
{{/each}}
如果您想要进行其他检查,则可以安装ember-truth-helpers插件。
class={{if (eq index 0) 'active' 'zones'}}