我正在使用mandrillapp使用send-api发送大量定制的电子邮件。 我的模板使用了最近由mandrill支持的把手语法:https://mandrill.zendesk.com/hc/en-us/articles/205582537并且我正在使用的#each循环似乎运行良好。
现在我需要更好地迭代:即查看每个循环中的项目是奇数还是偶数,如果是最后一个或类似的东西。
<div class="entry">
{{#each products}}
<div class="odd"> <!-- how to change class to even?-->
<div>{{name}}</div>
<div>{{price}}€</div>
</div>
{{/each}}
</div>
注意:我不是在谈论“handlebarsjs”,而只是关于mandrill模板中可用的车把语法
答案 0 :(得分:0)
你不能用某些东西检查
{{#like @index % 2}}
但是如果你有一个包含属性的列表,你可以将属性“odd”添加到你的列表中进行检查,所以你的列表看起来像这样:
products: [
{'name': 'productName1', 'price': 22, 'odd': true},
{'name': 'productName1', 'price': 22, 'odd': false},
{'name': 'productName2', 'price': 13, 'odd': true},
{'name': 'productName3', 'price': 42, 'odd': false},
{'name': 'productName4', 'price': 63, 'odd': true},
]
您的mandrill模板应该类似于:
<div class="entry">
{{#each products}}
<div class="{{#if odd}}odd{{else}}even{{/if}}"> <!-- how to change class to even-->
<div>{{name}}</div>
<div>{{price}}€</div>
</div>
{{/each}}
</div>
答案 1 :(得分:-1)
您可以尝试使用Handlebar.helper
Handlebars.registerHelper('if_even', function(conditional, options) {
if((conditional % 2) == 0) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
并且可以在每个循环中使用它之后,如下所示:
<ul>
{{#each items}}
<li>{{ title }} {{#if_even}} even {{ else }} odd {{/if_even}}
{{/each}}
</ul>
它对我有用!