我有以下内容:
<a><i data-bind="css: { 'fa fa-square': !eval(), 'fa fa-check-square-o': eval() }"></i></a>
当eval()
评估为true
时,我会看到正确的类适用。但是,当eval()
返回false
并且应该应用fa fa-square
时,我看到的只是fa-square
。在css绑定中是否存在某种错误,或者我做错了什么?
答案 0 :(得分:2)
如果条件的计算结果为true,则css绑定会添加css类,它不会覆盖任何现有的类。由于fa
出现在两个条件中,因此根本不需要在您的绑定中。
试试这个:
<a><i class="fa" data-bind="css: { 'fa-square': !eval(), 'fa-check-square-o': eval() }"></i></a>
编辑:为了回答你原来的问题,一个字符串中的多个css类似乎仍然在Knockout中有点错误。你可以通过将它们分开来实现这一点。例如,如果您想在eval评估为true时添加class1 class2
,则可以执行以下操作:
<i data-bind="css: { 'class1': eval(), 'class2': eval() }"></i>