当试图在带有Ember 1.13的HTMLBars中进行简单的条件样式类赋值时,下面的代码做得很好:
{{#each items as |item|}}
<li class="tag {{if item.selected 'active' 'inactive'}}">{{item.key}}</li>
{{/each}}
但是,有没有办法在大写字母中组合条件,比如检查另一个条件?类似下面的代码......
{{#each items as |item|}}
<li class="tag {{if (item.selected or noneSelected) 'active' 'inactive'}}">{{item.key}}</li>
{{/each}}
...或者是通过Ember助手检查几种情况的唯一方法吗?
感谢您的支持!
答案 0 :(得分:1)
你想让自己的帮手叫它conditional-or
:
import Ember from 'ember';
const { Helper: { helper } } = Ember;
export function conditionalOr(conditions, {valid, invalid}) {
invalid = invalid || '';
return conditions.some(elem => elem) ? valid : invalid;
}
export default helper(conditionalOr);
some()所做的是迭代数组元素,并在符合条件时返回true。
您可以在模板中使用它,如下所示:
<li class="tag {{conditional-or item.selected noneSelected valid='active' invalid='inactive'}}">{{item.key}}</li>