我正在尝试将值从单选按钮发送到淘汰可观察对象。我究竟做错了什么? (我是Knockout btw的新手。)
function Question(data) {
this.question= ko.observable(data.question);
this.answers = ko.observableArray(data.answers);
this.explenation = ko.observable(data.explenation );
}
function QuestionViewModel() {
// Data
var self = this;
self.questoin= ko.observable();
var questionNumber = 0;
self.currentAnswer = ko.observable();
self.nextQuestion = function() {
$.getJSON("json/quiz.json", function(data) {
var newQuestion = new Question(data[questionNumber]);
self.question(newQuestion );
});
questionNumber++;
}
self.setCurrentAnswer = function(){
self.currentAnswer = currentAnswerValue;
}
}
ko.applyBindings(new QuestionViewModel());
<ul data-bind="foreach: question">
<li>
<text data-bind="text: question">
</li>
<li>
<ul data-bind="foreach: answers">
<li>
<input type="radio" name="radioAnswer" data-bind="checked: $root.setCurrentAnswer, value: currentAnswerValue">
<text data-bind="text: answerValue"></text>
</li>
</ul>
</li>
</ul>
“currentAnswerValue”为“true”或“false”,并使用json设置。 (值是正确的,它在我尝试时有效):
<text data-bind="text: currentAnswerValue"></text>
答案 0 :(得分:0)
以下是获得选择的答案部分:
<强> HTML:强>
Question:
<ul data-bind="foreach: answers">
<li>
<input type="radio" name="group" data-bind="value: itemName, checked: $root.currentAnswer" /> <span data-bind="text: itemName"></span>
</li>
</ul>
<label data-bind="text: currentAnswer()"></label>
<强> JS /敲除:强>
var AnswerVM = {
answers: ko.observableArray([{
itemName: 'Answer 1'
}, {
itemName: 'Answer 2'
}]),
currentAnswer: ko.observable()
};
ko.applyBindings(AnswerVM);
尝试一下:
http://jsfiddle.net/5bc66m2h/3/
希望它有所帮助!