Maison > interface Web > js tutoriel > Comment distribuer des données ng-repeat dans des colonnes à l'aide de Bootstrap dans AngularJS ?

Comment distribuer des données ng-repeat dans des colonnes à l'aide de Bootstrap dans AngularJS ?

Susan Sarandon
Libérer: 2024-10-25 10:30:02
original
487 Les gens l'ont consulté

How to distribute ng-repeat data into columns using Bootstrap in AngularJS?

Distribution des données ng-Repeat dans des colonnes à l'aide de Bootstrap

Dans AngularJS, exploiter ng-repeat est fondamental lorsque l'on travaille avec des données répétitives. Cependant, il est souvent nécessaire d’organiser ces éléments selon une disposition visuellement attrayante, telle que trois colonnes distinctes. Pour y parvenir, nous explorons diverses approches, y compris des solutions au niveau du contrôleur et au niveau de la vue.

Transformation au niveau du contrôleur

Une approche robuste consiste à transformer le données au sein du contrôleur. En tirant parti de la fonction chunk fournie, nous pouvons diviser les données en sous-tableaux égaux, chacun représentant une colonne :

<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);
Copier après la connexion

Ces données peuvent ensuite être restituées à l'aide d'un ng-repeat imbriqué, comme suit :

<code class="html"><div class="row" ng-repeat="rows in chunkedData">
  <div class="span4" ng-repeat="item in rows">{{item}}</div>
</div></code>
Copier après la connexion

Filtrage au niveau de la vue

Alternativement, un filtre peut être utilisé pour obtenir la disposition souhaitée dans la vue. Cependant, cette approche est principalement destinée à des fins d'affichage et peut rencontrer des problèmes lors de l'incorporation d'éléments d'entrée :

<code class="html"><pre class="brush:php;toolbar:false"><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>
Copier après la connexion

Colonne verticale

Pour répartir les éléments verticalement plutôt qu'horizontalement, de légères modifications aux approches susmentionnées peuvent être apportées :

<code class="html"><div ng-repeat="row in columns">
  <div class="column" ng-repeat="item in row">
    {{item}}
  </div>
</div></code>
Copier après la connexion
<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;
}
Copier après la connexion

Colonnes CSS

Une autre solution élégante consiste à exploiter les colonnes CSS :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal