Javascript Knockout.js:可观测数据的初始值';更新单选按钮状态
下面是一个非常简单的故事,我没能成功: 我们有一系列的Javascript Knockout.js:可观测数据的初始值';更新单选按钮状态,javascript,knockout.js,Javascript,Knockout.js,下面是一个非常简单的故事,我没能成功: 我们有一系列的问题。每个问题都有一系列答案。每个答案都有一个文本和值。每个问题都有一个属性selectedAnswer,该属性表示所选答案的值 以下是JSFIDLE: 实施: <div data-bind="foreach : {data: questions}"> Question: <span data-bind="text: descr"></span> <div data-bind="foreach: {
问题
。每个问题都有一系列答案。每个答案都有一个文本
和值
。每个问题
都有一个属性selectedAnswer
,该属性表示所选答案的值
以下是JSFIDLE:
实施:
<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>
问题:
我希望根据selectedAnswer
的初始值选择相应的单选按钮(在上述情况下,单选按钮No
)。但它不起作用
我遗漏了什么?这是一个奇怪的问题。我可以通过如下方式更改
选中的
和值
绑定的顺序来修复它:
<input name="something" type="radio" data-bind="value: value, checked: $parent.selectedAnswer" />
还有另一个解决办法。如果你切换到knockout的最新版本,这个问题就会消失。所以,我假设他们在版本2和3.0之间修复了它 (另外,您可以简化与此的
foreach
绑定:data bind=“foreach:questions”
)
更新:
这确实是一个错误。您可以通过@user3297291了解更多信息。这是因为您使用的是旧的淘汰版。在@user3297291之前,我已经回答了一个关于相同问题的问题,谢谢,但不幸的是,升级淘汰赛对我来说不是一个选项!(在错误链接后重新发布;谢谢@JoseLuis)为了可见性,我将在这里重复我对这个问题的评论:对于那些好奇2.x版和3.x版之间发生了什么变化的人,请查看我写的回答:@adiga我该如何感谢你。现在就像一个魔咒。谢谢你的参考。
<input name="something" type="radio" data-bind="value: value, checked: $parent.selectedAnswer" />