Thật vậy, bạn nên sử dụng các chỉ thị và không có sự kiện nào được gắn vào cuối vòng lặp lặp lại (vì mỗi phần tử được xây dựng riêng lẻ và có sự kiện riêng). Nhưng a) sử dụng các lệnh có thể là tất cả những gì bạn cần và b) có một vài thuộc tính cụ thể lặp lại mà bạn có thể sử dụng để tạo sự kiện "trên ngRepeat kết thúc".
Cụ thể, nếu tất cả những gì bạn muốn là tạo kiểu / thêm sự kiện cho toàn bộ bảng, bạn có thể thực hiện bằng cách sử dụng một lệnh bao gồm tất cả các phần tử ngRepeat. Mặt khác, nếu bạn muốn giải quyết cụ thể từng yếu tố, bạn có thể sử dụng một lệnh trong ngRepeat và nó sẽ hành động trên từng thành phần, sau khi nó được tạo.
Sau đó, có những $index
, $first
, $middle
và $last
các thuộc tính bạn có thể sử dụng các sự kiện kích hoạt. Vì vậy, đối với HTML này:
<div ng-controller="Ctrl" my-main-directive>
<div ng-repeat="thing in things" my-repeat-directive>
thing {{thing}}
</div>
</div>
Bạn có thể sử dụng các chỉ thị như vậy:
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');
};
});
Xem nó trong hành động trong Plunker này . Hy vọng nó giúp!
myMainDirective
thực hiện mã của mình chỉ sau khi kết thúc vòng lặp không? Tôi cần cập nhật thanh cuộn của div cha.