Vorrei anche menzionare una nuova funzionalità di AngularJSng-repeat
, ovvero punti di inizio e fine ripetuti speciali . Quella funzionalità è stata aggiunta per ripetere una serie di elementi HTML anziché un solo elemento HTML genitore singolo .
Al fine di avviare l'uso del ripetitore e finale bisogna definirle utilizzando ng-repeat-start
e ng-repeat-end
direttive, rispettivamente.
La ng-repeat-start
direttiva funziona in modo molto simile alla ng-repeat
direttiva. La differenza è che ripeterà tutti gli elementi HTML (incluso il tag su cui è definito) fino al tag HTML finale dove ng-repeat-end
viene posizionato (incluso il tag con ng-repeat-end
).
Codice di esempio (da un controller):
// ...
$scope.users = {};
$scope.users["182982"] = {name:"John", age: 30};
$scope.users["198784"] = {name:"Antonio", age: 32};
$scope.users["119827"] = {name:"Stephan", age: 18};
// ...
Modello HTML di esempio:
<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>
L'output sarebbe simile al seguente (a seconda dello stile HTML):
==== 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]
======================
Come puoi vedere, ng-repeat-start
ripete tutti gli elementi HTML (incluso l'elemento con ng-repeat-start
). Tutte ng-repeat
le proprietà speciali (in questo caso $first
e $index
) funzionano anche come previsto.