2014-10-09 16 views
9

Tôi mới đến góc cạnh và cố gắng để làm như sau:AngularJS ngRepeat: làm thế nào để phân biệt các phần tử chẵn/lẻ?

<tr data-ng-repeat="element in awesomeThings"> 
<div ng-if="$index %2 == 0"> 
    <td class="even"> 
     <a href="#"> 
      {{element}} 
     </a> 
    </td> 
</div> 
<div ng-if="$index %2 != 0"> 
    <td class="odd"> 
     <a href="#"> 
      {{element}} 
     </a> 
    </td> 
</div> 
</tr> 

cho mã trên, cả hai ng-if đã qua. Tôi đang phạm sai lầm ở đâu?

+0

chỉ số là $ index với góc – Pascalz

+0

không may mắn. Kết quả tương tự của nó là – batman

+1

https://docs.angularjs.org/api/ng/directive/ngClassOdd –

Trả lời

16

Hãy thử $even$odd thuộc tính. Tham khảo documentation.

Giống như:

<tr data-ng-repeat="element in awesomeThings"> 
<div ng-if="$even"> 
    <td class="even"> 
     <a href="#"> 
      {{element}} 
     </a> 
    </td> 
</div> 
<div ng-if="$odd"> 
    <td class="odd"> 
     <a href="#"> 
      {{element}} 
     </a> 
    </td> 
</div> 
</tr> 
+0

không may mắn. Cũng giống như vậy: ( – batman

+0

Hãy chắc chắn rằng bạn đang sử dụng Angular.js 1.2.0 hoặc mới hơn. – gligoran

9

Bạn không cần phải sử dụng ng-nếu để kiểm tra xem nó là một yếu tố chẵn hoặc lẻ, chức năng được tích hợp đã:

<tr ng-repeat="element in awesomeThings"> 
     <span ng-class="$even ? 'odd' : 'even'">{{element}}</span> 
    </tr> 

xây dựng khác -in tính năng là ng-class cung cấp cho bạn một số tùy chọn để thiết lập điều kiện một lớp css, ở đây tôi đang sử dụng phiên bản thứ ba nhưng có nhiều cách khác để sử dụng nó.

Đây là một working example

Ngoài ra, đây là một good article giải thích thêm về ng-class

+1

Làm việc cho tôi, nhưng tôi không thực sự nhận được câu lệnh. Tôi giả định rằng "$ even" là câu lệnh nhưng tại sao hàng đầu tiên được kích hoạt là 'lẻ', trong khi câu lệnh là '$ thậm chí'? (Tìm khó giải thích câu hỏi này) –

+0

@JorisDecraecker Bởi vì câu lệnh nên là: "$ even? 'even': 'odd' "(có nghĩa là nếu ngay cả, đặt lớp thậm chí nếu không đặt lẻ). Tất nhiên bạn có thể sử dụng các lớp học ngay cả khi lẻ nhưng tôi đồng ý trong thực tế là câu trả lời có thể là một chút bối rối. –

0

Hãy thử điều này trong css:

tr:nth-child(even) { 
    background: #CCC 
} 

tr:nth-child(odd) { 
    background: #FFF 
} 

Bạn có thể xác định phong cách cho mục đầu tiên:

tr:first-child { 
    background: #84ace6 
} 
Các vấn đề liên quan