如何在徽标中应用类来进行内联比较条件?

时间:2015-04-22 18:45:36

标签: css ternary-operator emblem.js

我想做这样的事情:

li class={aProperty=="alpha":active} Plain Text

我在使用属性,并查看它是否与值匹配,而不是简单的布尔值。

这有效的会徽语法是什么?语法文档仅针对布尔属性条件显示此内容,并且执行类似我的示例会导致浏览器错误和编译错误。

2 个答案:

答案 0 :(得分:1)

不幸的是,车把和徽章都只适用于布尔人。我不同意这个设计决定,但你必须跳过一些箍来添加助手来处理它们,即使这样,语法也不是很干净。

AFAIK,唯一的方法是通过bool属性。

在您的控制器中:

li class={aPropertyAlpha:active}

在你的模板中:

static void [[used]] foo(void)
{
    // ...
}

答案 1 :(得分:1)

这个答案是针对评论添加的:ahnbizcad您也可以将此列表项放入组件中,并使用以下内容:

#list-item.emblem

'Raw text'

#list-item.coffee

tagName: 'li'
classNameBindings: ['activeItem']

activeItem: Ember.computed 'aProperty', ->
  if @get('aProperty') == 'alpha'
    return 'active'
  else
    return ''

然后你可以在父视图的循环中调用它,如下所示:

ul
  each availableProperties as |property|
    list-item aProperty=property

希望能帮助有类似问题的人。