Je tiens également à mentionner une nouvelle fonctionnalité de AngularJS ng-repeat
, à savoir, spécial répéter de début et de fin des points. Cette fonctionnalité a été ajoutée afin de répéter une série d'éléments HTML au lieu d'un seul parent de l'élément HTML.
Afin d'utiliser le répéteur de début et de fin, vous devez définir à l'aide de ng-repeat-start
et ng-repeat-end
directives respectivement.
L' ng-repeat-start
directive fonctionne de manière très similaire à l' ng-repeat
directive. La différence est que se répétera tous les éléments HTML (y compris le tag est défini sur) jusqu'à la fin de balise HTML où ng-repeat-end
(y compris l'étiquette avec ng-repeat-end
).
Exemple de code (à partir d'un contrôleur):
// ...
$scope.users = {};
$scope.users["182982"] = {name:"John", age: 30};
$scope.users["198784"] = {name:"Antonio", age: 32};
$scope.users["119827"] = {name:"Stephan", age: 18};
// ...
Exemple de gabarit HTML:
<div ng-repeat-start="(id, user) in users">
==== User details ====
</div>
<div>
<span>{{$index+1}}. </span>
<strong>{{id}} </strong>
<span class="name">{{user.name}} </span>
<span class="age">({{user.age}})</span>
</div>
<div ng-if="!$first">
<img src="/some_image.jpg" alt="some img" title="some img" />
</div>
<div ng-repeat-end>
======================
</div>
La sortie devrait ressembler à la suivante (selon le code HTML de style):
==== User details ====
1. 119827 Stephan (18)
======================
==== User details ====
2. 182982 John (30)
[sample image goes here]
======================
==== User details ====
3. 198784 Antonio (32)
[sample image goes here]
======================
Comme vous pouvez le voir, ng-repeat-start
se répète tous les éléments HTML (y compris l'élément avec ng-repeat-start
). Tous ng-repeat
propriétés spéciales (dans ce cas - $first
et $index
), fonctionnent comme prévu.