Tôi đang vật lộn với trường hợp sử dụng đặc biệt. Tôi cung cấp cho bạn một đoạn mã jsfiddle ở phía dưới.Thách thức lặp lại tr với ng-repeat
1. HTML bảng
HTML của tôi là một bảng. Chỉ thị ng-repeat
phải được áp dụng cho phần tử html. Trong trường hợp sử dụng của tôi, điều này không thể được thực hiện như một thể hiện của ng-repeat bao gồm một yếu tố tr kép:
<!-- ng-repeat the following block n times -->
<tr>
<td>text</td>
</tr>
<tr>
<td tooltip="comment that is bound to the first tr">hover me</td>
</tr>
AngularJS không cung cấp một lời nhận xét ng-repeat cú pháp (không giống như KnockoutJS). Tôi đã tìm thấy các câu hỏi tương tự về SO. Tuy nhiên, ca sử dụng bao gồm việc gắn thêm HTML bên trong một phần tử. Của tôi sẽ bao gồm việc đặt một tr mới sau khi tr-lặp lại tr, nhưng nó chỉ không hoạt động. Bên cạnh đó, có một công cụ mới để đưa vào tài khoản.
2. Tooltip chỉ
Các tr thứ hai nhúng một chỉ thị tooltip, mà được lấy từ góc-ui-bootstrap. Do đó một cách tiếp cận jQuery thuần túy có thể không khả thi.
3. MỤC TIÊU CỦA TÔI
tôi cung cấp cho bạn một đoạn mã mà không sử dụng ng-repeat cả. Mục tiêu của tôi là sử dụng ng-repeat được áp dụng cho từng phần tử trong bộ sưu tập của tôi.
Bạn không thể sử dụng thẻ tbody để nhóm các số
AngularJS 1.2 được cho là hỗ trợ ngRepeats trên nhiều phần tử: http://www.youtube.com/watch?v=W13qDdJDHp8&t=1079. Điều đó sẽ cho phép bạn giải quyết vấn đề mà không cần hack '
'. – nre@nre: Tốt để biết :) – roland
Trả lời
Bạn có thể sử dụng thẻ tbody cho groupping nhiều tr với nhau và sử dụng ngRepeat để lặp qua nó.
http://jsfiddle.net/RkCMr/4/
Bằng cách này, nó trông giống như mã của bạn vẫn còn trong Jquery cách làm việc. Ngay cả bạn đã đặt chúng trong một chỉ thị. Như trong ví dụ trên, một chỉ thị là không cần thiết và JQuery không được sử dụng.
Nguồn
2013-08-07 07:52:07 DavidLin
Tuyệt vời! Tôi không biết rằng nhiều thẻ tbody được cho phép (chỉ tr trong tâm trí cần nâng cấp của tôi).Cảm ơn rất nhiều :) Yeah giải pháp của tôi là jquery-ish như tôi nghĩ trường hợp sử dụng cụ thể của tôi không thể được giải quyết bằng cách sử dụng ng-lặp lại: o – roland
này hoạt động nhưng nó là loại jank cùng một lúc ... – btm1
Đồng ý với @ btm1 - Tôi không nghĩ rằng bạn nên là 'ng-lặp lại' tbodys ... – JaKXz
Đây là giải pháp cho việc này.
http://jsfiddle.net/RkCMr/7/
Nguồn
2013-08-07 07:58:40 Sushrut
Nó cũng có thể làm điều đó với
ng-repeat-start
vàng-repeat-end
directives:Theo tôi nó là tốt hơn nhiều so lặp lại
tbody
phần tử.Nguồn
2014-12-09 14:25:39 akn
^^^^^ đây là giải pháp tốt hơn nhiều so với câu trả lời được chấp nhận. Đừng lặp lại 'tbody'! – hgoebl
Như hgoebl đã nói, đây là câu trả lời hay nhất. Tôi bị sốc khi thấy rất nhiều người giới thiệu ng-lặp lại trên tbody. đó là thực hành BAD. nó casuse thêm padding/rows để xuất hiện trên kiểu dáng. – jward01
Cho đến khi góc 1,2 phương pháp này không có sẵn. – shanemgrey
Các vấn đề liên quan