Knockoutjs可观察的对象数组,按名称绑定选择器

时间:2016-05-08 05:27:58

标签: javascript knockout.js

我有一个可观察的可观察对象数组 FieldsAndValues enter image description here

我使用此

按索引绑定每个对象的值
<input type="radio" data-bind="checked: DTO.FieldsAndValues()[0].Value, checkedValue: 'true'" class="separate" name="rdo">Yes

<input type="radio" data-bind="checked: DTO.FieldsAndValues()[0].Value, checkedValue: 'false'" class="separate" name="rdo">No

我的问题是,有没有办法使用 LeaveFieldName 属性作为选择器绑定对象而不是它们的索引?

1 个答案:

答案 0 :(得分:1)

是不是只是在该数组上使用foreach绑定,而不是手动指定每个节点的索引?

e.g。

<div data-bind="foreach: DTO.FieldsAndValues">
    <div>
        <input type="radio" data-bind="checked: LeaveField.LeaveFieldName, checkedValue: true" class="separate" name="rdo">Yes
        <input type="radio" data-bind="checked: LeaveField.LeaveFieldName, checkedValue: false" class="separate" name="rdo">No
    </div>
</div>

另外,即使你绑定它,你的值也将是真/假,而不是IsRegularAndProbiSeparate(等等)。这就是checkedValue绑定的用途。你甚至将布尔值字符串化,这不是一个好主意,应该只是checkedValue: true

或者,您可以在数组输出中使用 with 绑定(with: LeaveField),并且可以访问每次重复中的所有属性。