1

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

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

4

1 回答 1

0

这是我一起拍的一个 jsfiddle,向您展示它是如何工作的:

http://jsfiddle.net/vzkaY/5/

您可以使用 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>

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

于 2013-05-29T22:08:09.730 回答