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

Knockout.js data-bind array to list of checkboxes

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 -->

循环遍历多个患者的数组并显示每个患者伤害类型的复选框列表。我如何 select 每个病人的多个复选框,基于伤害的子数组?

我想你在某个地方应该有一个所有可能受伤的列表,假设它将在父视图模型中(以及患者集合)并称为 AllInjuries 你还需要添加一些方法对于您的 Patient class 什么将遍历所有患者的伤害并确定该患者是否有该伤害,假设它称为 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 -->