在Ember.js Handlebars模板中,有没有一种方法可以同时具有静态和动态类属性?

在Ember.js Handlebars模板中,有没有一种方法可以同时具有静态和动态类属性?,ember.js,handlebars.js,Ember.js,Handlebars.js,使用已经过度使用的待办事项应用程序示例,假设我想要一个具有“todo”类(静态)和“is done”类(动态)的元素: 这里还有其他东西吗 在本例中,“isDone”和“todo”都应该是我的视图对象上的属性,这是我想要的“isDone”,而不是“todo”。目前,我正在通过在视图中添加一个与静态“todo”字符串相等的“todo”属性来解决这个问题。在使用bindAttr时,有没有办法拥有静态类属性 Fiddle示例:我不知道您是否可以使用bindAttr,但是#view帮助程序允许您设置

使用已经过度使用的待办事项应用程序示例,假设我想要一个具有“todo”类(静态)和“is done”类(动态)的元素:


这里还有其他东西吗
在本例中,“isDone”和“todo”都应该是我的视图对象上的属性,这是我想要的“isDone”,而不是“todo”。目前,我正在通过在视图中添加一个与静态“todo”字符串相等的“todo”属性来解决这个问题。在使用bindAttr时,有没有办法拥有静态类属性


Fiddle示例:

我不知道您是否可以使用bindAttr,但是
#view
帮助程序允许您设置静态类和动态类:

{{#view App.TodoView class="todo" classBinding="isDone"}}
  inner content
{{/view}} 
编辑:

我们已经在余烬修复了这个

在从主版本生成时,或在0.9.6发布后,您现在可以执行以下操作:


先前的答案:

不幸的是,在使用
bindAttr
时,不能同时使用静态和动态类名

我建议在视图中使用一个或多个计算属性来输出静态和动态类名


同时支持静态和动态类名是非常好的,但是以
bindAttr
目前的工作方式,这是不可能的
bindAttr
不知道它在模板编译过程中所附加到的元素的任何信息。

在Ember master中,今天提交了一项更改,允许通过在
bindAttr
中预先添加冒号来指定静态类


当然,这可能会在下一个版本之前发生变化,但这是Ember核心团队想要解决的问题。

在Ember 1.10.0中,bindAttr被弃用。您可以直接将变量绑定到div类。此处,颜色变量绑定到div类:

<div class="{{color}}"></div>

内联if帮助器也可以在以下上下文中使用:

<div class="{{color}} {{if isEnabled 'active' 'disabled'}}"></div>


已更新以反映新功能。是否尚未记录?还是我错过了?