ng-repeat directive is used on an array of objects to repeat an HTML element. We can use $index, $first, $last, $middle, $even, $odd with ngRepeat. Let try to understand it using examples.

Example 1:

  1. <ul>
  2. <li data-ng-repeat="x in friends">
  3. {{ x }}
  4. </li>
  5. </ul>

Complete HTML Code:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8" />
  6. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
  7. </head>
  8. <body>
  9. <div data-ng-app="" data-ng-init="friends
  10. =['Banketeshvar Narayan','Mnaish Sharma','Rajnish Kumar','Om Prakash']">
  11. <p>List of Friends</p>
  12. <ul>
  13. <li data-ng-repeat="x in friends">
  14. {{ x }}
  15. </li>
  16. </ul>
  17. </div>
  18. </body>
  19. </html>

Browser output


Example 2:

  1. <ul class="example-animate-container">
  2. <li class="animate-repeat" ng-repeat="employee in employees | filter:q as results">
  3. EmployeeId :ABC000{{$index + 1}} <br /> Employee Name: {{employee.name}} <br /> Salary: {{employee.salary}} <br /> Years of experience : {{employee.experience}} <br /><br />
  4. </li>
  5. <li class="animate-repeat" ng-if="results.length == 0">
  6. <strong>No results found...</strong>
  7. </li>
  8. </ul>

Complete HTML Code:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>ng-repeat Example 2</title>
  5. <meta charset="utf-8" />
  6. <link href="animations.css" rel="stylesheet" type="text/css">
  7. <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0-beta.2/angular.min.js"></script>
  8. <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0-beta.2/angular-animate.js"></script>
  9. </head>
  10. <body ng-app="ngAnimate">
  11. <div ng-init="employees = [
  12. {name:'B Kaushik', salary:160000, experience:'6.0'},
  13. {name:'M K Sharma', salary:150000, experience:'7.2'},
  14. {name:'R Choudhary', salary:90000, experience:'1.9'},
  15. {name:'M N Yadav', salary:80000, experience:'2.8'},
  16. {name:'M Kumar', salary:70000, experience:'5.6'},
  17. {name:'S Chouhan', salary:85000, experience:'5.9'},
  18. {name:'A P Verma', salary:53000, experience:'4.2'},
  19. {name:'S N Mitra ', salary:25000, experience:'3.0'},
  20. {name:'G H Pant', salary:12000, experience:'2.2'},
  21. {name:'H S Nirala', salary:125000, experience:'8.1'}
  22. ]">
  23. ABC Pvt. Ltd. has done more than 40% increment for {{employees.length}} employees. <br />They are:
  24. <input type="search" ng-model="q" placeholder="filter employees..." aria-label="filter employees" />
  25. <ul class="example-animate-container">
  26. <li class="animate-repeat" ng-repeat="employee in employees | filter:q as results">
  27. EmployeeId :ABC000{{$index + 1}} <br /> Employee Name: {{employee.name}} <br /> Salary: {{employee.salary}} <br /> Years of experience : {{employee.experience}} <br /><br />
  28. </li>
  29. <li class="animate-repeat" ng-if="results.length == 0">
  30. <strong>No results found...</strong>
  31. </li>
  32. </ul>
  33. </div>
  34. </body>
  35. </html>

Now you can filter data by typing text in textbox.