Html 取消选中绑定,没有默认值
我正在使用Knockout处理web应用程序中的交互。我正在尝试创建一个选择题小部件。我想提出一个问题,然后是一组单选按钮,用户可以从中选择。我不想要默认答案 我的代码中包含以下内容:Html 取消选中绑定,没有默认值,html,knockout.js,Html,Knockout.js,我正在使用Knockout处理web应用程序中的交互。我正在尝试创建一个选择题小部件。我想提出一个问题,然后是一组单选按钮,用户可以从中选择。我不想要默认答案 我的代码中包含以下内容: <!-- ko foreach: {data: answers, as: 'answer'} --> <li class="list-group-item"> <input type="radio" name="answers"
<!-- ko foreach: {data: answers, as: 'answer'} -->
<li class="list-group-item">
<input type="radio"
name="answers"
data-bind="checkedValue: answer, checked: $parent.current.problem.response">
<span data-bind="mathjax: answer.value.text">1.5</span>
</li>
<!-- /ko -->
1.5
现在,淘汰赛文档显示:
当用户更改选择的单选按钮时,KO将将模型属性设置为与所选单选按钮的值相等。在前面的示例中,单击value=“cherry”单选按钮会将viewModel.spamFlavor设置为“cherry”
因此,根据文档,我的理解是,current.problem.response
observable应该设置为answer
对象。但是,它被设置为上的
我想这是因为我的当前.problem.response
最初是null
。这对我的领域是有意义的。如果用户未进行选择,则应为空
我该怎么办?看起来您的方案可行。也许问题不在现场。
这把小提琴演示了它的工作原理
打开控制台以查看所选选项
演示视图模型看起来像
var vm = {
answers: [
{ text: 'ans1' },
{ text: 'ans2' },
{ text: 'ans3' },
{ text: 'ans4' }
],
response: ko.observable(null)
};
vm.answer = vm.answers[0];
vm.response.subscribe(function(value) {
console.log(value);
});
根据模型对标记进行了一些修改
<!-- ko foreach: {data: answers, as: 'answer'} -->
<li class="list-group-item">
<input type="radio"
name="answers"
data-bind="checkedValue: answer, checked: $parent.response" />
<span data-bind="text: answer.text"></span>
</li>
<!-- /ko -->
希望这能有所帮助。如果您还有其他问题,请在评论中详细说明。我认为应该可以解决,但我不明白为什么我的问题不起作用。不是将$parent.response设置为答案,而是将其设置为“on”。奇怪的不过谢谢你的帮助。你能把小提琴换成演示你案件的细节吗?我的意思是让它不适用于你的案子。你在问题中提供的东西看起来很像我放在小提琴里的东西。我想我们会这样发现问题。我把小提琴弄得乱七八糟,让它看起来更像我的小提琴(使用ko.mapping是最大的区别)。它还在那边工作。我注意到小提琴使用的是KO3.0。我的项目是2.3版的。我升级了,它看起来好像在工作!:)伟大的这似乎不属于所描述的情况。很高兴它被清除了。)如果您将答案标记为适用,我将不胜感激;)