Knockout CSS只应用一个类?

时间:2013-12-13 03:16:47

标签: knockout.js

我有以下内容:

<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绑定中是否存在某种错误,或者我做错了什么?

1 个答案:

答案 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>