Rzeczywiście, powinieneś używać dyrektyw i nie ma żadnego zdarzenia związanego z końcem pętli ng-Repeat (ponieważ każdy element jest konstruowany indywidualnie i ma swoje własne zdarzenie). Ale a) używanie dyrektyw może być wszystkim, czego potrzebujesz, i b) istnieje kilka właściwości specyficznych dla ng-Repeat, których możesz użyć, aby zrobić zdarzenie „po zakończeniu ngRepeat”.
W szczególności, jeśli chcesz tylko stylizować / dodawać zdarzenia do całej tabeli, możesz to zrobić za pomocą dyrektywy obejmującej wszystkie elementy ngRepeat. Z drugiej strony, jeśli chcesz adresować każdy element konkretnie, możesz użyć dyrektywy w ngRepeat, i będzie ona działać na każdy element po jego utworzeniu.
Następnie, nie są $index
, $first
, $middle
i $last
właściwości można użyć do zdarzeń wyzwalających. W przypadku tego HTML:
<div ng-controller="Ctrl" my-main-directive>
<div ng-repeat="thing in things" my-repeat-directive>
thing {{thing}}
</div>
</div>
Możesz użyć takich dyrektyw:
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');
};
});
Zobacz to w akcji w tym Plunkerze . Mam nadzieję, że to pomoże!
myMainDirective
kod dopiero po zakończeniu pętli? Muszę zaktualizować pasek przewijania div rodzica.