Knockout.js 如何使用knockoutjs在select中单独绑定数据
我有一个从ObservalArray中选择的列表,当我在first select中选择一个数据时,它将绑定下一个select中的数据。这就是我的代码中的样子 html:Knockout.js 如何使用knockoutjs在select中单独绑定数据,knockout.js,Knockout.js,我有一个从ObservalArray中选择的列表,当我在first select中选择一个数据时,它将绑定下一个select中的数据。这就是我的代码中的样子 html: 代码中存在的问题是,所有第二列选择都绑定到相同的“$parent.AbsenceReasons”,因此在更改事件处理程序中,一旦更改self.AbsenceReasons,所有第二列选择都将更改,因为这是它们绑定到的 解决方案非常简单: 每个参与者都应该有自己的“缺席原因” 选择的第二列应绑定到每个参与者的缺席原因 而chang
代码中存在的问题是,所有第二列选择都绑定到相同的“$parent.AbsenceReasons”,因此在
更改事件处理程序中,一旦更改self.AbsenceReasons,所有第二列选择都将更改,因为这是它们绑定到的
解决方案非常简单:
每个参与者都应该有自己的“缺席原因”
选择的第二列应绑定到每个参与者的缺席原因
而change
事件处理程序只更改特定参与者的缺席原因
代码中存在的问题是,所有第二列选择都绑定到相同的“$parent.AbsenceReasons”,因此在更改事件处理程序中,一旦更改self.AbsenceReasons,所有第二列选择都将更改,因为这是它们绑定到的
解决方案非常简单:
每个参与者都应该有自己的“缺席原因”
选择的第二列应绑定到每个参与者的缺席原因
而change
事件处理程序只更改特定参与者的缺席原因
是的,这就是我想要的。只有同一行中的将更改。thanks@comfreakph顺便说一句,我更新了我的答案,我刚刚看到你在标题中提到你的问题,请原谅。是的,这就是我想要的。只有同一行中的将更改。thanks@comfreakph顺便说一句,我更新了我的答案,我刚刚看到你在标题中提到了你的问题,请原谅。
<tbody data-bind="foreach: Participants">
<tr>
<td data-bind="text: Name"></td>
<td>
<select data-bind="
options: $parent.AttendanceCodes,
optionsText: 'Text',
optionsValue: 'Value',
value:$parent.AttendanceCode,
optionsCaption: 'select',
event:{change: $parent.onchange_attendancecodes}">
</select>
</td>
<td>
<select class="reason" data-bind="options: $parent.AbsenceReasons,
optionsText: 'Text',
optionsValue: 'Value',
value: $parent.AbsenceReason"></select>
</td>
</tr>
</tbody>
var viewModel = function(data){
var self = this;
self.AbsenceReasons = ko.observableArray([]);
self.AttendanceCodes = ko.observableArray(attendanceCodeList);
self.Participants = ko.observableArray(participantsData);
//event
self.onchange_attendancecodes = function(){
self.AbsenceReasons.removeAll();
self.AbsenceReasons(absenceReasonsList);
};
};