Дійсно, вам слід використовувати директиви, і жодна подія не прив’язана до кінця циклу ng-Repeat (оскільки кожен елемент побудований індивідуально і має власну подію). Але а) використання директив може бути всім, що вам потрібно, і b) є кілька властивостей ng-Repeat, які ви можете використовувати для створення події "on ngRepeat ready".
Зокрема, якщо все, що вам потрібно, - це стиль / додавання подій до всієї таблиці, ви можете зробити це, використовуючи директиву, яка охоплює всі елементи ngRepeat. З іншого боку, якщо ви хочете звернутися до кожного елемента конкретно, ви можете використовувати директиву в ngRepeat, і вона буде діяти на кожен елемент після його створення.
Тоді, Є $index
, $first
, $middle
і $last
властивості , які можна використовувати для запуску подій. Отже, для цього HTML:
<div ng-controller="Ctrl" my-main-directive>
<div ng-repeat="thing in things" my-repeat-directive>
thing {{thing}}
</div>
</div>
Ви можете використовувати такі директиви:
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');
};
});
Дивіться це в дії в цьому Plunker . Сподіваюся, це допомагає!
myMainDirective
код виконувати лише після закінчення циклу? Мені потрібно оновити смугу прокрутки батьківського діва.