In der Tat sollten Sie Direktiven verwenden, und es gibt kein Ereignis, das an das Ende einer ng-Repeat-Schleife gebunden ist (da jedes Element einzeln erstellt wird und ein eigenes Ereignis hat). Aber a) die Verwendung von Anweisungen ist möglicherweise alles, was Sie benötigen, und b) es gibt einige ng-Repeat-spezifische Eigenschaften, mit denen Sie Ihr Ereignis "on ngRepeat beendet" ausführen können.
Wenn Sie lediglich Ereignisse für die gesamte Tabelle formatieren / hinzufügen möchten, können Sie dies in einer Direktive tun, die alle ngRepeat-Elemente umfasst. Wenn Sie andererseits jedes Element spezifisch ansprechen möchten, können Sie eine Anweisung innerhalb von ngRepeat verwenden, die nach ihrer Erstellung auf jedes Element einwirkt.
Dann gibt es die $index
, $first
, $middle
und $last
Eigenschaften können Sie auf Triggerereignisse verwenden. Also für diesen HTML:
<div ng-controller="Ctrl" my-main-directive>
<div ng-repeat="thing in things" my-repeat-directive>
thing {{thing}}
</div>
</div>
Sie können Anweisungen wie folgt verwenden:
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');
};
});
Sehen Sie es in Aktion in diesem Plunker . Ich hoffe es hilft!
myMainDirective
Code erst nach dem Ende der Schleife ausführen lassen? Ich muss die Bildlaufleiste des übergeordneten Div aktualisieren.