我有一组名称,用于填充FilterBy单选按钮列表。
filterBy = ko.observableArray(["Aaa", "Bbb", "Ccc"]);
selectedFilter = ko.observable("Aaa");
我显示像这样的FilterBy单选按钮列表,
<div data-bind="foreach: filterBy">
<input type="radio" name="filterby" data-bind="value: $data, checked: $parent.selectedFilterBy" /><span data-bind="text: $data"></span>
</div>
我有两个按钮 - 提交和取消。在提交单击时,我得到所选单选按钮并将其值分配给'selectedFilterBy'并进行过滤/更新等。在取消单击时,我想恢复selectedfilter。我刚刚注意到,当我选择每个单选按钮时,selectedFilterBy的值正在更新。我没想到'selectedFilterBy'会自动更新。
知道为什么吗?
感谢。
答案 0 :(得分:1)
checked binding已设置为更新模型$ parent.selectedFilterBy。因此,无论何时单击单选按钮,都会调用检查的绑定,因为Knockout是2路绑定,它将更新指定的变量。
当用户更改选择了哪个单选按钮时,KO会将您的模型属性设置为等于所选单选按钮的值“