我有一个Knockout.js视图模型,如下所示:

"UserName":null,
"FirstName":null,
"LastName":null,
"Countries":{
    "arrCountries":[]
}

还有一组国家/地区复选框,所有复选框都必须使用相同的data-bind值呈现(我正在使用this自定义CheckBoxListFor帮助程序,该方法可以将自定义HTML应用于每个复选框,但每个复选框都具有相同的自定义HTML。它需要一个属性列出我的剃刀视图模型中每个可用的国家/地区,以创建复选框,然后根据另一个剃刀视图模型属性将其呈现为标记。

复选框的值是整数(1、2、3等),这是我想放入视图模型的arrCountries属性中的那些整数。

这是当前复选框呈现的方式:
<input checked="checked" data_bind="checked: ???" id="Countries.arrCountries107" name="Countries.arrCountries" type="checkbox" value="1"></input>

我已经证明了使用viewModel.Countries.arrCountries.push(1);更新视图模型的概念(随后是一个警报,该警报使我可以了解arrCountries中的元素数量,以证明push可以正常工作),但是我似乎无法获得data-bind HTML属性连接的复选框,以便在我发送pushremove命令时选中和取消选中它们。

任何帮助,不胜感激!

最佳答案

使选中的数据属性指向选定的国家。如果复选框的值在复选框的数组中,则将对其进行检查。否则不会。

<input checked="checked" data-bind="checked: Countries" type="checkbox" value="3"></input>

看看我提出的这个小提琴。

http://jsfiddle.net/u8xP9/3/

10-08 10:49
查看更多