这是我无法使它起作用的非常简单的故事:
我们有一个questions
的数组。每个问题都有answer
的数组。每个答案都有text
和value
。每个question
都有代表选定答案value
的属性selectedAnswer
。
这是jsfiddle:https://jsfiddle.net/votsevfd/8/
实现:
<div data-bind="foreach : {data: questions}">
Question: <span data-bind="text: descr"></span>
<div data-bind="foreach: {data: answers}">
<div>
<label data-bind="text: text"></label>
<input name="something" type="radio" data-bind="checked: $parent.selectedAnswer, value: value"></input>
</div>
</div>
<div>
The selected answer is:<span data-bind="text: selectedAnswer"></span>
</div>
</div>
这是相关的JavaScript
:
var model = {
questions: ko.observableArray(),
};
var q1 = {
descr: 'Do you like JS?',
selectedAnswer: ko.observable('200'), // Initially, select No (200)
answers: [
{text:'Yes', value:'100'},
{text:'No', value:'200'}
],
}
model.questions.push(q1);
ko.applyBindings(model);
问题:我希望根据selectedAnswer
的初始值选择适当的单选按钮(在上述情况下为Radio Button No
)。但这行不起作用。
我缺少什么?
这是一个奇怪的问题。我能够通过更改checked
和value
绑定的顺序来解决它:
<input name="something" type="radio" data-bind="value: value, checked: $parent.selectedAnswer" />
更新的小提琴
还有另一个修复程序。如果您切换到淘汰赛的最新版本,那么此问题就会消失。因此,我假设他们将其修复在版本2和3.0之间。
更新的小提琴
(另外,您可以简化foreach
绑定到以下内容:data-bind="foreach : questions"
)
更新:
这确实是一个错误。您可以通过 @user3297291的详细答案进行有关此信息的更多信息。