Knockout.js数据绑定数组到复选框列表

时间:2015-01-29 14:49:28

标签: javascript arrays checkbox knockout.js

Patient 1
    Patient.Age = '25'
    Patient.Injury[0].Date = '2015-01-01'
    Patient.Injury[0].Type = 'Burned'
    Patient.Injury[1].Date = '2015-01-27'
    Patient.Injury[1].Type = 'Sprained Ankle'

Patient 2
    Patient.Age = '17'
    Patient.Injury[0].Date = '2015-01-08'
    Patient.Injury[0].Type = 'Papercut'

<!-- ko foreach: Patient -->
<input type="checkbox" data-bind="checked: ?"> Sprained Ankle
<input type="checkbox" data-bind="checked: ?"> Burned
<input type="checkbox" data-bind="checked: ?"> Papercut
<!-- /ko -->

通过一组多名患者进行循环,并显示每位患者受伤类型的复选框列表。如何根据受伤的子阵列为每位患者选择多个复选框?

1 个答案:

答案 0 :(得分:3)

我想你在某个地方应该有一份所有可能受伤的清单,可以说是在父视图模型中(以及患者的集合)并且调用AllInjuries你也需要添加一些方法给你的Patient课程将迭代所有患者的伤情,并确定该患者是否有这种伤害,让它称为hasInjury。然后你就可以使用这样的东西:

<!-- ko foreach: Patient -->
    <!-- ko foreach: $parents[1].AllInjuries -->
        <input type="checkbox" data-bind="checked: $parent.hasInjury($data.Type)">
        <span data-bind="text: Type"></span>
    <!-- /ko -->
<!-- /ko -->