在尝试将它们与同一元素上的常规类组合时,我注意到条件属性绑定的问题.这是我正在尝试的把手标记:
<a href="#" class="button" {{bindAttr class="isDirty:dirty:clean"}} {{action save}}>Save</a>
我期望产生的是:
<a href="#" class="button clean" data-bindattr-3="3" data-ember-action="4">Save</a>
但实际产生的是:
<a href="#" class="button" data-bindattr-3="3" data-ember-action="4">Save</a>
<a href="#" class="button dirty" data-bindattr-3="3" data-ember-action="4">Save</a>
如果我尝试在绑定后移动类,它将生成条件类而不是声明的类:
<a href="#" {{bindAttr class="isDirty:dirty:clean"}} class="button" {{action save}}>Save</a>
生成条件但不是按钮类:
<a href="#" class="clean" data-bindattr-3="3" data-ember-action="4">Save</a>
解决方法
在
template guides中,它描述了一种为一个项目组合静态和绑定类的方法:
If you need an element to have a combination of static and bound classes,you should include the static class in the list of bound properties,prefixed by a colon.
在你的情况下你会做这样的事情:
<a href="#" {{bindAttr class=":button isDirty:dirty:clean"}} {{action save}}>Save</a>
这是一个工作示例http://jsbin.com/ixupad/82/edit