我有一个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属性连接的复选框,以便在我发送push
和remove
命令时选中和取消选中它们。任何帮助,不胜感激!
最佳答案
使选中的数据属性指向选定的国家。如果复选框的值在复选框的数组中,则将对其进行检查。否则不会。
<input checked="checked" data-bind="checked: Countries" type="checkbox" value="3"></input>
看看我提出的这个小提琴。
http://jsfiddle.net/u8xP9/3/