我有一个要在 Bootstrap 流体网格中显示的视频缩略图的分页列表。我使用嵌套的 ng-repeat 来首先迭代每个列表,进行分页,并使用内部 ng-repeat 来迭代子数组中的每个视频缩略图。网格是 3x6,所以当内部 ng-repeat 的索引是 5 的倍数时(假设 $index 从 0 开始),我想关闭一个流动的行并开始一个新的行。
<div ng-repeat="thumbList in thumbLists">
<div ng-repeat="thumb in thumbList" class="row-fluid">
<div class="span2">
<a href="{{ thumb.URL }}">
<img src="{{ thumb.thumbnailURL }}" width="160" height="85" alt="" class="img-responsive">
</a>
</div>
<!-- ng-switch? -->
</div>
</div>
列表由 REST 服务填充,因此当用户单击“下一步”按钮时,会将新的数组列表推送到“列表”上,并且动画将滑过每个 3x6 网格。结构如下:
$scope.thumbLists = [
[{URL: url, thumbnailURL: thumburl}, ...], // init
[{URL: url, thumbnailURL: thumburl}, ...], // pushed when user clicks 'next'
... etc
];
我所拥有的一切都正常工作,我只是不确定如何有条件地添加 HTML 以关闭一行并在该行达到 6 时开始一个新行,因为缩略图是在单个数组中给出的。
例如,在我有评论的 ng-switch 的地方,我可以做类似的事情:
<div ng-switch="$index">
<div ng-switch-when="$index % 6 == 5">
</div>
使用 1.0.8 稳定版。必须支持IE8。
临时解决方案 - 删除其所在行中第一个元素的左边距:
<div ng-repeat="thumbList in thumbLists">
<div class="row-fluid>
<div ng-repeat="thumb in thumbList" class="span2" ng-class="{nomargin: $index % 6 == 0}">
<a href="{{ thumb.URL }}">
<img src="{{ thumb.thumbnailURL }}" width="160" height="85" alt="" class="img-responsive">
</a>
</div>
</div>
</div>
仍然想找到一个解决方案,我可以有条件地插入/删除 HTML,也许使用指令。