Knockout.js 订阅从foreach循环中选择的项目

Knockout.js 订阅从foreach循环中选择的项目,knockout.js,Knockout.js,我使用foreach绑定生成一个表,每行中都有一个下拉列表。根据他们的选择,我需要显示其他列。我遇到的问题是,我需要订阅这个下拉列表,让我知道表头需要显示额外的列头 如何订阅从foreach对象循环生成的选择列表?这里是我拼凑的JSFIDLE,向您展示了它的工作原理: 您可以使用ko.computeds来确定该行中的其他单元格所处的状态,如果它们有效,则让下一个单元格可见 self.col3data.active = ko.computed(function () { if (self

我使用foreach绑定生成一个表,每行中都有一个下拉列表。根据他们的选择,我需要显示其他列。我遇到的问题是,我需要订阅这个下拉列表,让我知道表头需要显示额外的列头


如何订阅从foreach对象循环生成的选择列表?

这里是我拼凑的JSFIDLE,向您展示了它的工作原理:

您可以使用ko.computeds来确定该行中的其他单元格所处的状态,如果它们有效,则让下一个单元格可见

self.col3data.active = ko.computed(function () {
    if (self.col2data() === "item B")
        return true;
    return false;
}, self);
在标记中

<td><select data-bind="options: col2items, value: col2data"></select></td>
<td><select data-bind="visible: col3data.active, options: col3items, value: col3data"></select></td>


我认为您可能希望显示所有标题,而不管任何行是否应该显示该列的单元格数据。原因是,如果一行的所有列都可见,并且您将另一行中的某些值更改为“隐藏”列标题,那么您将影响其他行。如果不是所有行都处于显示该列的正确状态,则可能会折叠标题

选择列表本身必须绑定到敲除可观察对象。选择列表是对象内的一个可观察对象。我需要订阅对象的foreach循环中的select列表。