Knockout.js 为什么KnockoutJS将class属性设置为;0 1 2 3 4 5带“的启动”;?
我有以下HTML段: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
<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>