Knockout.js 为什么KnockoutJS将class属性设置为;0 1 2 3 4 5带“的启动”;?

Knockout.js 为什么KnockoutJS将class属性设置为;0 1 2 3 4 5带“的启动”;?,knockout.js,Knockout.js,我有以下HTML段: <table class="answerGrid" data-bind="foreach: rows"> <tr data-bind="foreach: $data"> <td> <button data-bind="click : $root.onAnswerClick, css: isSelected" type="button"> <d

我有以下HTML段:

<table class="answerGrid" data-bind="foreach: rows">
    <tr data-bind="foreach: $data">
        <td>
            <button data-bind="click : $root.onAnswerClick, css: isSelected" type="button">
                <div data-bind="html: $data.text" style="height: 100%"></div>
            </button>
        </td>
    </tr>
</table>
函数正在执行,我检查了文本“answer”是否返回,因为
answer
尚未被选择。但是,当我查看输出的HTML时,它看起来是这样的:

<td>
    <button data-bind="click : $root.onAnswerClick, css: isSelected" type="button" class="0 1 2 3 4 5 startsWith">
        <div data-bind="html: $data.text" style="height: 100%">4-7 days</div>
    </button>
</td>

4-7天
我完全搞不懂为什么KO将
class
属性设置为“0 1 2 3 4 5 StartWith”


有人能帮我吗?

我将使用另一种方法:

<button data-bind="css: { 'answer': !selected(), 'selected-answer': selected() }" type="button">
    <span>Testing</span>
</button>​

测试
​
所以我根本不打算使用computed函数,而是直接访问答案的
selected
属性。我通过这个问题找到了这个技巧:


您使用的是哪种KO版本?您能在JSFIDLE?2.1.0版中重新编写您的问题吗。这里有一个报告给你:我想,新的淘汰赛2.2也可以解决这个问题。“css绑定现在可以将编程生成的css类名附加到元素上(以前仅限于切换预定义的css类名)”:非常好。可能需要考虑为我正在进行的项目更新到2.2。
<button data-bind="css: { 'answer': !selected(), 'selected-answer': selected() }" type="button">
    <span>Testing</span>
</button>​