我有以下的HTML代碼段:爲什麼KnockoutJS將class屬性設置爲「0 1 2 3 4 5 startsWith」?
<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>
我試圖做通過isSelected
計算功能動態設置button
元素的class
屬性:
var Answer = function() {
var self = this;
self.id = "";
self.text = "";
self.selected = ko.observable(false);
self.isSelected = ko.computed(function() {
return self.selected() ? "selected-answer" : "answer";
}, self);
};
功能是作爲執行,並且我檢查了由於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>
我完全糊塗了,爲什麼KO被設置class
屬性設置爲「0 1 2 3 4 5 startsWith」。
任何人都可以幫助我嗎?
你正在使用哪個KO版本?你可以在jsfiddle中複製你的問題嗎? – nemesv
版本2.1.0。這裏是一個repor爲你:http://jsfiddle.net/j6Tta/ –