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-start
và ng-repeat-end
chỉ thị tương ứng.
Lệnh ng-repeat-start
này hoạt động rất giống với ng-repeat
chỉ 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-start
lặ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-repeat
các thuộc tính đặc biệt (trong trường hợp này $first
và $index
) cũng hoạt động như mong đợi.