AngularJS 提供 ng-repeat 来基于数据数组动态创建元素。当您处理大量元素时,将它们对齐到列中可以增强用户界面和可读性。
首选方法是在控制器使用 JavaScript 的 chunk 函数,将数据分成大小均匀的组:
function chunk(arr, size) {
var newArr = [];
for (var i=0; i转换后的 chunkedData 可以在视图中呈现如下:
{{item}}
在视图中进行过滤(警告)
虽然可以,但不建议出于数据绑定目的使用过滤器对视图中的数据进行分块。如果在过滤视图中使用输入,可能会导致不一致。
<div ng-repeat="row in ['a','b','c','d','e','f'] | chunk:3">
<div class="column" ng-repeat="item in row">
{{($parent.$index*row.length) $index 1}}. {{item}}
</div>
</div>
要垂直而不是水平对齐项目,可以使用分块方法的变体:
function columnize(input, cols) {
var arr = [];
for(i = 0; i < input.length; i ) {
var colIdx = i % cols;
arr[colIdx] = arr[colIdx] || [];
arr[colIdx].push(input[i]);
}
return arr;
}
<div ng-repeat="row in columns">
<div class="column" ng-repeat="item in row">
{{item}}
</div>
</div>
创建垂直列的另一个选项是利用 CSS 列:
.columns {
columns: 3;
}
<div class="columns">
<div ng-repeat="item in ['a','b','c','d','e','f','g']">
{{item}}
</div>
</div>
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3