我正在尝试一次显示 N 个项目中的一堆项目。我需要对项目进行分块,因为标记必须是表格/网格的(每组 N 个项目有一行,然后每个项目有一列)。这是一个简化的尝试:
app.filter('inGroupsOf', function () {
return function (input, groupSize) {
if (!input) {
return [];
}
var result = [];
for (var index = 0; index < input.length; index++) {
var groupIndex = Math.floor(index / groupSize);
if (!result[groupIndex]) {
result[groupIndex] = [];
}
result[groupIndex].push(input[index]);
}
return result;
};
});
<div ng-controller="Ctrl">
<div ng-repeat="itemGroup in items | inGroupsOf:7">
<span ng-repeat="item in itemGroup">{{item.name}}</span>
</div>
</div>
(完整版在这里:http: //jsfiddle.net/bradleybuda/twhVj/3/)
这会导致“达到 10 个 $digest() 迭代”错误。我已经查看了这个问题的公认答案,但那里的建议对我不起作用(除了核对过滤器并在控制器中执行所有操作)。有没有办法让这种 ng-repeat 与模板/过滤器一起工作?在控制器中执行此操作感觉很难看。