2013-08-09 17 views
15

Hi Tôi có một trường hợp sử dụng đơn giản cho ng-lặp-bắt đầu và kết thúc và đang làm việc tốt, vấn đề xuất hiện khi tôi muốn thêm một ng-lặp lại bên trong. Đây là mã của tôiangularjs: ng-lặp-bắt đầu và ng-lặp-end với nội ng-repeat

<tr ng-repeat-start="obj in rows" > 
    <td ng-repeat="e in obj.row">{{e}}</td> 
</tr> 
<tr ng-repeat-end> 
    <td colspan="4">{{obj.description}}</td> 
<tr> 

Các nội ng-repeat vào yếu tố td không hoạt động, tôi nhìn thấy những nhận xét ngRepeat khi tôi kiểm tra mã nguồn html, nhưng các yếu tố td không được tạo ra.

<!-- ngRepeat: e in obj.row --> 

workaround xấu xí của tôi (cho rằng tôi biết kích thước của vector đó) là:

<tr ng-repeat-start="obj in rows" > 
    <td>{{obj.row[0]}}</td> 
    <td>{{obj.row[1]}}</td> 
    <td>{{obj.row[2]}}</td> 
    <td>{{obj.row[3]}}</td> 
</tr> 
<tr ng-repeat-end> 
    <td colspan="4">{{obj.description}}</td> 
<tr> 
+0

Có phải vì mẫu là HTML không hợp lệ? Tôi thấy kết thúc '' thẻ thực sự là '' –

Trả lời

17

tôi không chắc chắn cho dù bạn đang sử dụng góc 1.1.6 hay không kể từ ng-repeat-startng-repeat-end không có sẵn trong 1.1.5 hoặc 1.0.7 được nêu ra.

Tuy nhiên, bạn không thực sự phải sử dụng các chỉ thị mới để đạt được điều đó. Bạn chỉ có thể thực hiện nó như thế này cho ngay bây giờ:

<table> 
    <tbody ng-repeat="obj in rows"> 
     <tr ng-repeat="e in obj.row"> 
      <td>{{e}}</td> 
     </tr> 
     <tr> 
      <td colspan="4">{{obj.description}}</td> 
     <tr> 
    </tbody> 
</table> 

Bạn có thể sử dụng ng-repeat-startng-repeat-end reimplement nó khi AngularJS 1.1.6 phiên bản chính thức được phát hành.

Demo

+0

Có, tôi đang sử dụng phiên bản 1.1.6. Tôi thích giải pháp của bạn Tôi đã thử nó trước và nó hoạt động. Những gì tôi không thích là các yếu tố nhiều tbody, do đó tôi đưa ra một thử tính năng mới này. Cảm ơn câu trả lời của bạn! – Jime

+0

@Jime Bạn chỉ cần một 'tbody'. – zsong

+0

+1 cho nút demo. những thứ tuyệt vời :) –

1

Bạn sẽ có thể sử dụng lặp đi lặp lại chỉ số dựa trên để bỏ qua rằng:

<tr ng-repeat-start="obj in rows" > 
    <td ng-repeat="e in obj.row">{{obj.row[$index]}}</td> 
</tr> 
<tr ng-repeat-end> 
<!-- ... --> 
+0

vấn đề là chỉ thị ng-repeat không được giải quyết, hoặc là tôi sử dụng chỉ số dựa lặp hoặc e đối tượng – Jime

1

Tôi nghĩ rằng nó có thể là một cái gì đó sai với cấu trúc dữ liệu của bạn. Sử dụng góc 1.2.1 làm việc này cho tôi

<div ng-app="myApp" ng-controller="myCtrl"> 
    <div class="h" ng-repeat-start="val in data">{{val.title}}</div> 
    <div ng-repeat="con in val.content"> 
     {{con}} 
    </div> 
    <div class="b" ng-repeat-end>footer</div> 
</div> 

Xem jsFiddle

Các vấn đề liên quan