2

我在javascript中有一个2dim数组,像这样

        for (var i = 0; i < tab.length; i++) {
            for (var j = 0; j < tab[i].length; j++) {
                tab[i][j] = ko.observable(tab[i][j]);
            }
            tab[i] = ko.observableArray(tab[i]);
        }
        this.TabValues = ko.observableArray(tab);

现在我想创建一个没有固定列和行的表。

<script type="text/html" id="table">     
        <table data-bind="template: {name: 'rows', foreach: TabValues}">

        </table>
</script>
<script type="text/html" id="rows">
    <tr data-bind="template: {name: 'columns', foreach: TabValues()[i]}">
    </tr>
</script>

为此,我创建了一个表格模板,并在其中创建了一个行模板。但现在我不知道如何为列创建模板,因为在 foreach 语句中我需要一个索引。但我没有。我怎样才能做到这一点。

也许你有另一种方法来解决这个问题。我的目标是创建一个没有固定行/列大小的可编辑表。

我希望有一个人可以帮助我。

4

1 回答 1

2

在您的内部模板中,您可以使用$data来引用当前数据。这将是一个单元格数组,因此您可以执行"template: {name: 'columns', foreach: $data }".

这是一个非常基本的示例:http: //jsfiddle.net/rniemeyer/KcghG/

于 2012-04-05T13:05:46.930 回答