Comment puis-je utiliser AngularJS ng-repeat avec Twitter Bootstrap de l'échafaudage?
Comment puis-je utiliser AngularJS ng-repeat
pour afficher le code HTML suivant (Twitter Bootstrap Échafaudage)? Essentiellement, chaque troisième enregistrement, j'ai besoin de fermer le </div>
, d'imprimer une <hr>
, puis d'en ouvrir un autre <div class="span4">
<div class="row">
<div class="span4">
<h3>
Project A
</h3>
</div>
<div class="span4">
<h3>
Project B
</h3>
</div>
<div class="span4">
<h3>
Project C
</h3>
</div>
</div>
<hr>
<div class="row">
<div class="span4">
<h3>
Project D
</h3>
</div>
<div class="span4">
<h3>
Lab Title
</h3>
</div>
<div class="span4">
<h3>
Project E
</h3>
</div>
</div>
J'ai créé un violon pour le code des démos.
http://jsfiddle.net/ADukg/261/
Vous devez vous connecter pour publier un commentaire.
Une façon plus élégante est d'utiliser le modèle de vue de fournir un bloc de collecte et de laisser le manche comme
et la coffeescript est assez simple
http://jsfiddle.net/ADukg/370/
Ici un moyen:
Cette manière que fonctionne aussi si vous avez par exemple 7 éléments de données: sur les 3 dernières données, il n'affiche que l'article 7 et de ne pas essayer de montrer les présents de l'élément 8 et 9.
http://jsfiddle.net/4LhN9/68/
MODIFIER: mis à Jour pour utiliser ng-si & angulaire 1.2.12
<hr/>
après chaque élément répété sans exiger un complément de style.Se déplaçant sur des le plus facile de répondre. Je n'aime pas le solution originale en raison de la vide des éléments du dom qu'il produit. C'est pour les 3 divs par ligne.
En fonction FieldsCtrl($champ):
Si vous connaissez les champs.la longueur vous pouvez à la place des champs.range (), utilisez [0,3,6,9] etc
De garder la vue de la logique du contrôleur et avoir plus de ré-utilisable de la solution, vous pouvez créer un filtre personnalisé qui divise le tableau en ligne groupes:
Et dans la vue:
Pour inclure les rh, vous pouvez utiliser le ng-repeat points de début et fin:
10 $digest() iterations reached
exception. Voir ce violon.ng-repeat, lancez-ng-repeat-end de fin points semble un moyen pratique d'y parvenir :
Qui conduit à un code simple
Voir ce jsfiddle