Ember HTMLBars 内联组合条件

Ember HTMLBars inline combined conditions

当尝试使用 Ember 1.13 在 HTMLBars 中进行简单的条件样式-class 赋值时,以下代码做得很好:

{{#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 帮助程序检查多个条件的唯一方法?

感谢您的支持!

你会想要制作你自己的助手让我们称它为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() 所做的是遍历数组元素,当满足条件时 return 为真。

您将能够像这样在您的模板中使用它:

<li class="tag {{conditional-or item.selected noneSelected valid='active' invalid='inactive'}}">{{item.key}}</li>