如何让Knockout组织foreach

时间:2012-05-13 22:29:50

标签: knockout.js

我可以让我的记录重复使用foreach,但因为我正在使用CSS的网格系统,我想一次四个(div class =“column”)对这些记录进行分组(div class =“行“)。

我没有看到一个很好的例子,如何以这种方式包装每个记录。

任何帮助?

1 个答案:

答案 0 :(得分:18)

所以我不完全确定你的目标是什么,但是你可以像这样手动分组。

http://jsfiddle.net/madcapnmckay/hFPgT/1/

<div data-bind="foreach: grouped" >
    <div data-bind="foreach: $data" class="row">
        <div class="column" data-bind="text: text"></div>
    </div>
</div>    

this.grouped = ko.computed(function () {
        var rows = [], current = [];
        rows.push(current);
        for (var i = 0; i < this.items.length; i += 1) {
            current.push(this.items[i]);
            if (((i + 1) % 4) === 0) {
                current = [];
                rows.push(current);
            }
        }
        return rows;
}, this);

希望这有帮助。