ブートストラップを使用して ng-repeat データを 3 つの列に分割するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-25 01:01:30
オリジナル
728 人が閲覧しました

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

ブートストラップを使用して ng-repeat データを 3 つの列に分割する

AngularJS で ng-repeat を使用する場合、データを複数の列に配置したいと思うのが一般的です。この記事では、ブートストラップを使用して ng-repeat データを 3 つの列に分割するさまざまな方法について説明します。

コントローラーでのデータ変換

最も信頼できるアプローチは、コントローラ。これにより、チャンク化されたデータの新しい配列を作成しながら、元のデータ構造を維持できます。次のような関数を使用できます:

<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>
ログイン後にコピー

以上がブートストラップを使用して ng-repeat データを 3 つの列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート