我正在使用 foreach 绑定来生成一个表,并且在每一行中都有一个下拉列表。根据他们的选择,我需要显示其他列。我遇到的问题是我需要订阅这个下拉列表,让我知道表头需要显示额外的列标题。
如何订阅从 foreach 对象循环生成的选择列表?
我正在使用 foreach 绑定来生成一个表,并且在每一行中都有一个下拉列表。根据他们的选择,我需要显示其他列。我遇到的问题是我需要订阅这个下拉列表,让我知道表头需要显示额外的列标题。
如何订阅从 foreach 对象循环生成的选择列表?
这是我一起拍的一个 jsfiddle,向您展示它是如何工作的:
您可以使用 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>
我认为您可能希望显示所有标题,无论是否有任何行应显示该列的单元格数据。原因是,如果一行所有列都可见,并且您更改另一行中的某些值以“隐藏”列标题,那么您将影响其他行。如果所有行都未处于正确状态以显示该列,则可以折叠标题。