Tôi cũng muốn đề cập đến một chức năng mới của AngularJSng-repeat , cụ thể là, điểm bắt đầu và điểm kết thúc đặc biệt . Chức năng đó đã được bổ sung để lặp lại một loạt các yếu tố HTML thay vì chỉ là một đơn phần tử HTML mẹ.
Để sử dụng điểm bắt đầu và điểm kết thúc lặp lại, bạn phải xác định chúng bằng cách sử dụng ng-repeat-startvà ng-repeat-endchỉ thị tương ứng.
Lệnh ng-repeat-startnày hoạt động rất giống với ng-repeatchỉ thị. Sự khác biệt là sẽ lặp lại tất cả các yếu tố HTML (bao gồm cả thẻ được xác định trên) cho đến thẻ HTML kết thúc ng-repeat-endđược đặt (bao gồm cả thẻ với ng-repeat-end).
Mã mẫu (từ bộ điều khiển):
// ...
$scope.users = {};
$scope.users["182982"] = {name:"John", age: 30};
$scope.users["198784"] = {name:"Antonio", age: 32};
$scope.users["119827"] = {name:"Stephan", age: 18};
// ...
Mẫu HTML mẫu:
<div ng-repeat-start="(id, user) in users">
==== User details ====
</div>
<div>
<span>{{$index+1}}. </span>
<strong>{{id}} </strong>
<span class="name">{{user.name}} </span>
<span class="age">({{user.age}})</span>
</div>
<div ng-if="!$first">
<img src="/some_image.jpg" alt="some img" title="some img" />
</div>
<div ng-repeat-end>
======================
</div>
Đầu ra sẽ trông giống như sau (tùy thuộc vào kiểu HTML):
==== User details ====
1. 119827 Stephan (18)
======================
==== User details ====
2. 182982 John (30)
[sample image goes here]
======================
==== User details ====
3. 198784 Antonio (32)
[sample image goes here]
======================
Như bạn có thể thấy, ng-repeat-startlặp lại tất cả các phần tử HTML (bao gồm cả phần tử với ng-repeat-start). Tất cả ng-repeatcác thuộc tính đặc biệt (trong trường hợp này $firstvà $index) cũng hoạt động như mong đợi.