【问题标题】:How to get Knockout to group foreach如何让 Knockout 对 foreach 进行分组
【发布时间】:2012-05-14 12:44:37
【问题描述】:

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

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

有什么帮助吗?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    所以我不完全确定你在追求什么,但你可以像这样手动分组。

    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);
    

    希望这会有所帮助。

    【讨论】:

    • 谢谢!这对静态数组很有用。但是当我对项目使用 ko.observableArray 时,什么也没有发生。
    • 是的,observableArray 只是一个包装静态数组的函数,所以执行它会返回里面的静态数组。
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多