KnockoutJS foreach if

时间:2013-12-26 22:05:18

标签: html asp.net-mvc-4 razor knockout.js

我该怎么做:

<div class="boxes-container">
<!-- ko foreach: Items -->
  <!-- ko if: DisplayCount < @itemsCount -->
     @Html.Raw("</div><div class='boxes-container'>")
     @{ itemsCount = 0;}
  <!-- /ko -->
   .....
<!-- /ko -->
</div>

现在它返回此错误:错误:无法找到要匹配的结束评论标记:ko foreach:Items

1 个答案:

答案 0 :(得分:1)

我制作了一个fiddle可能是一个解决方案,其中Grouped是一个计算的,所以即使Items是observableArray它也能正常工作。

var VM = function () {
    var self = this;
    self.Items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
    self.DisplayCount = 3;
    self.Grouped = ko.computed(function () {
        var groups = [];
        for (var index = 0; index < self.Items.length; index = index + self.DisplayCount) {
            groups.push(self.Items.slice(index, index + self.DisplayCount));
        }
        return groups;
    });    
};

并查看

<!-- ko foreach: Grouped -->
<div class='boxes-container'>
<!-- ko foreach: $data -->
    <span data-bind="text: $data"></span>
<!-- /ko -->
</div>
<!-- /ko -->

See fiddle