私はノックアウトを使った小さなプロジェクトに取り組んでいます。そこでは、いくつかの質問への答えをシミュレートする必要があります。私は動的に3つのボタンを作成し、1つをクリックすると、その上のテキストを正しい答えと比較し、正しい場合は緑色になります。正しくない場合は、赤色になり、正しいボタンが緑色になります。ノックアウトのcssプロパティへのバインディングを使用しようとしていますが、cssに関連付けられた計算が変更されても、プロパティが正しく更新されていないようです。html:
<ul data-bind="foreach: chosenQuestionAnswers">
<li>
<button data-bind="text: answerText, css: $root.answerStatus(), click: $root.selectButton"></button>
</li>
</ul>
コパート:
selectedAnswer: ko.observable(),
isAnswerCorrect: ko.observable(),
selectButton: function (value) { my.AppViewModel.isAnswerCorrect(my.AppViewModel.checkIfCorrectAnswer(value.answerText));
},
checkIfCorrectAnswer: function (value) {
return (value == my.AppViewModel.chosenQuestionCorrectAnswer());
},
my.AppViewModel.answerStatus = ko.computed(function () {
var exit = this.isAnswerCorrect() == true ? "highlightRight" : "highlightWrong";
console.log(this.isAnswerCorrect());
console.log(exit);
return exit;
}, my.AppViewModel);
console.logはvarexitの正しい値を示しています...しかしボタンのcssは変更されません...
理由は何ですか?..
ありがとう....私。