首页  >  文章  >  web前端  >  如何使用 Bootstrap 将 ng-repeat 数据拆分为三列?

如何使用 Bootstrap 将 ng-repeat 数据拆分为三列?

Linda Hamilton
Linda Hamilton原创
2024-10-25 01:01:30728浏览

How to Split ng-repeat Data into Three Columns Using Bootstrap?

使用 Bootstrap 将 ng-repeat 数据拆分为三列

在 AngularJS 中使用 ng-repeat 时,通常希望将数据排列为多列。本文探讨了使用 Bootstrap 将 ng-repeat 数据拆分为三列的不同方法。

控制器中的数据转换

最可靠的方法是在控制器中转换数据控制器。这允许您在创建新的分块数据数组时维护原始数据结构。您可以使用如下函数:

<code class="javascript">function chunk(arr, size) {
  var newArr = [];
  for (var i=0; i<arr.length; i+=size) {
    newArr.push(arr.slice(i, i+size));
  }
  return newArr;
}

$scope.chunkedData = chunk(myData, 3);

在您的视图中,迭代分块数据:

<code class="html"><div class="row" ng-repeat="rows in chunkedData">
  <div class="span4" ng-repeat="item in rows">{{item}}</div>
</div></code>

在视图中过滤(不推荐用于输入)

虽然可以使用过滤器来显示分块数据,但请务必注意,此方法不适合与输入一起使用。相反,依赖于控制器中的数据转换。

垂直列

对于垂直列布局,您可以修改 CSS 或使用自定义函数来排列元素:

CSS 列(首选)

<code class="css">.columns {
  columns: 3;
}</code>
<code class="html"><div class="columns">
  <div ng-repeat="item in ['a','b','c','d','e','f','g']">{{item}}</div>
</div></code>

自定义函数

或者,您可以垂直分布不均匀列表使用自定义函数:

<code class="javascript">var data = ['a','b','c','d','e','f','g'];
$scope.columns = columnize(data, 3);
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;
}</code>

以上是如何使用 Bootstrap 将 ng-repeat 数据拆分为三列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn