2013-03-11 28 views
5

Tôi đang sử dụng AngularJS và tôi có yêu cầu trong đó tôi cần lặp lại một phần tử sau một chỉ mục cụ thể. Vì vậy, chúng ta hãy nói mã của tôi là:AngularJS: Lặp lại sau một chỉ mục cụ thể

<label ng-repeat="stones in rocks"> 
    <a href="#">Rock {{$index}}</a> 
    <i class="icon-trash"></i> 
</label> 

Bây giờ những gì tôi muốn là <i class="icon-trash"></i> được lặp đi lặp lại chỉ sau chỉ số 3. Đó là từ viên đá thứ tư trở đi, tôi muốn nhìn thấy thùng rác. Làm thế nào để đạt được điều này?

+0

ng-show hoạt động tốt, nhưng nếu bạn không muốn ' 'phần tử trong DOM, sử dụng [ng-switch] (http://docs.angularjs.org/api/ng.directive:ngSwitch). –

+0

Tôi rất tò mò nếu có lý do để sử dụng ng-switch thay vì [ng-if] (http://docs.angularjs.org/api/ng.directive:ngIf) (có lẽ nhận xét của bạn là ngày cho bản phát hành cũ hơn). – BradGreens

Trả lời

11

ng-show có thể mất một biểu:

<label ng-repeat="stones in rocks"> 
    <a href="#">Rock {{$index}}</a> 
    <i class="icon-trash" ng-show="$index > 2"></i><!--$index is 0-based--> 
</label> 

Tính đến phiên bản 1.1.5, bạn có thể giữ các yếu tố không mong muốn ra khỏi DOM với

<i class="icon-trash" ng-if="$index > 2"></i> 
+2

Kể từ phiên bản [1.1.5] (https://github.com/angular/angular.js/blob/master/CHANGELOG.md), bạn có thể giữ các phần tử không mong muốn trong DOM bằng '' – BradGreens

+0

cảm ơn @bradgreeens, được thêm vào câu trả lời –

3

Bạn chỉ có thể giấu nó trong 3 lần lặp đầu tiên, sử dụng ng-show:

<label ng-repeat="stones in rocks"> 
    <a href="#">Rock {{$index}}</a> 
    <i class="icon-trash" ng-show="$index>2"></i> 
</label> 
Các vấn đề liên quan