In effetti, dovresti usare le direttive e non c'è nessun evento legato alla fine di un ciclo ng-Repeat (poiché ogni elemento è costruito individualmente e ha il suo evento). Ma a) usare le direttive potrebbe essere tutto ciò di cui hai bisogno eb) ci sono alcune proprietà specifiche di ng-Repeat che puoi usare per rendere l'evento "on ngRepeat finito".
In particolare, se tutto ciò che vuoi è stile / aggiungere eventi all'intera tabella, puoi farlo usando una direttiva che comprende tutti gli elementi ngRepeat. D'altra parte, se si desidera indirizzare in modo specifico ciascun elemento, è possibile utilizzare una direttiva all'interno di ngRepeat, che agirà su ciascun elemento, dopo che è stato creato.
Poi, ci sono il $index
, $first
, $middle
e $last
le proprietà che si possono utilizzare per eventi di trigger. Quindi per questo HTML:
<div ng-controller="Ctrl" my-main-directive>
<div ng-repeat="thing in things" my-repeat-directive>
thing {{thing}}
</div>
</div>
Puoi usare le direttive in questo modo:
angular.module('myApp', [])
.directive('myRepeatDirective', function() {
return function(scope, element, attrs) {
angular.element(element).css('color','blue');
if (scope.$last){
window.alert("im the last!");
}
};
})
.directive('myMainDirective', function() {
return function(scope, element, attrs) {
angular.element(element).css('border','5px solid red');
};
});
Guardalo in azione in questo Plunker . Spero che sia d'aiuto!
myMainDirective
eseguire il codice solo dopo la fine del ciclo? Devo aggiornare la barra di scorrimento del div genitore.