Triggering Events after ng-repeat Population
You want to execute a jQuery function on a div containing a table populated using ng-repeat, but neither $(document).ready() nor $scope.$on('$viewContentLoaded', myFunc) triggers it.
Custom Directive Approach
Directives provide a way to create custom functionality. Since there's no built-in event for the end of an ng-repeat loop, you can use a directive to accomplish this.
There are two scenarios to consider:
Properties for Triggering Events
Additionally, you can utilize the following properties with ng-repeat:
Example
Consider the following HTML:
<div ng-controller="Ctrl" my-main-directive> <div ng-repeat="thing in things" my-repeat-directive> thing {{thing}} </div> </div>
You can define directives to manipulate the elements:
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'); }; });
In this example, the myRepeatDirective sets the color of each element to blue and alerts "im the last!" for the last element. The myMainDirective sets a border around the entire table.
The above is the detailed content of How to Trigger jQuery Functions After ng-repeat Finishes Populating a Table?. For more information, please follow other related articles on the PHP Chinese website!