次の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>
私がやろうとしているのは、計算された関数を介して要素のclass
属性を動的に設定することです。button
isSelected
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
まだ選択されていないために「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>
class
KOが属性を「012 345startsWith」に設定している理由について私は完全に混乱しています。
誰か助けてくれませんか?