我正在使 my previous questions 之一完全动态化,因为模型是根据服务器数据构建的,并且视图通过淘汰赛{{1}循环遍历viewmodel功能。
我面临的问题是:
无线电选项不会保留值集,即我单击操作系统,然后选择数据库选项,然后操作系统设置消失。
从属选项(在本例中为数据库和群集)在从属选项更改时没有选择其初始选择(即当操作系统更改时,数据库应返回到第一个选项,无)。
My fiddle is here ,我认为问题与以下代码有关:
ko foreach
或我的视图绑定:
computedOptions.subscribe(function () {
var section = this;
console.log("my object: %o", section);
section.selection(section.options()[0].sku);
},section);
我不确定哪一个,并且会因为我的大脑从jsfiddle会话中受伤而感到新鲜的眼睛。
答案 0 :(得分:2)
你有两个问题:
您没有正确绑定单选按钮的名称:name="$parent.name"
不是敲除绑定表达式,只是将字符串"$parent.name"
分配给所有单选按钮。您需要的是使用attr
绑定:
<input type="radio" data-bind="checkedValue: $data,
checked: $parent.selection,
attr: { name: $parent.name }" />
初始选择无效,因为您使用的是checkedValue: $data
选项,这意味着您的checked
应包含整个对象,而不仅仅是一个属性( sku
)所以您需要将computedOptions.subscribe
更改为:
computedOptions.subscribe(function () {
var section = this;
section.selection(section.options()[0]);
},section);
演示JSFiddle。