简体   繁体   中英

Nested ng-repeat in AngularJS

I have the following JSON:

{ "ListNhomThanhTra": [
    {
        "ListKeHoachThanhTra": [
            {
                "ListDoiTuong": [
                    {
                        "MA_DV_DUOC_TT": "DT01",
                        "TEN_DOITUONG": "Tỉnh Bắc Ninh",
                        "stt": 1.1
                    }
                ],
                "MA_DM_KEHOACH_TT": "KH13072018003",
                "TEN_KEHOACH": "Kế hoạch chính thức",
                "stt": 1
            }
        ],
        "MA_NHOM_TT": "010",
        "TEN_NHOM": "Thanh tra ngân sách địa phương",
        "stt": "I"
    },
    {
        "ListKeHoachThanhTra": [
            {
                "ListDoiTuong": [
                    {
                        "MA_DV_DUOC_TT": "DT01",
                        "TEN_DOITUONG": "Tỉnh Bắc Ninh",
                        "stt": 1.1
                    }
                ],
                "MA_DM_KEHOACH_TT": "KH13072018003",
                "TEN_KEHOACH": "Kế hoạch chính thức",
                "stt": 1
            }
        ],
        "MA_NHOM_TT": "02",
        "TEN_NHOM": "Thanh tra tài chính, bộ ngành",
        "stt": "II"
    }
],
"MA_LOAI_TT": "01",
"TEN_LOAI": "Kế hoạch thanh tra",
"stt": "A"
}

Currently, I have a JSON string like this, and I want to display it in a tabular form.

I tried to use the code below, but it just stops at the second ng-repeat, and it's not going any further, so I was wondering how do I do it right?

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
 <tbody ng-repeat="loaiThanhTra in dataTable">                                                                    
        <td>{{loaiThanhTra.stt}}</td>
        <td>{{loaiThanhTra.TEN_LOAI}}</td>

     <tr ng-repeat="nhomThanhTra in loaiThanhTra.ListNhomThanhTra">
        <td>{{nhomThanhTra.stt}}</td>
        <td>{{nhomThanhTra.TEN_NHOM}}</td>
         <tr ng-repeat="keHoachThanhTra in nhomThanhTra.ListKeHoachThanhTra ">
            <td>{{keHoachThanhTra.stt}}</td>
            <td>{{keHoachThanhTra.TEN_KEHOACH}}</td>    
             <tr ng-repeat="doiTuongThanhTra in keHoachThanhTra.ListDoiTuong">
                <td>{{doiTuongThanhTra.stt}}</td>
                <td>{{doiTuongThanhTra.TEN_DOITUONG}}</td>        
             </tr>
         </tr>
    </tr>                             
 </tbody>

Please help me!!!

You cannot have trs in tds. Use ng-container and row spans on your parent objects.

<tbody ng-repeat="loaiThanhTra in dataTable">
  <td>{{loaiThanhTra.stt}}</td>
  <td>{{loaiThanhTra.TEN_LOAI}}</td>

  <tr ng-repeat="nhomThanhTra in loaiThanhTra.ListNhomThanhTra">
    <td rowspan="nhomThanhTra.ListKeHoachThanhTra.length">{{nhomThanhTra.stt}}</td>
    <td rowspan="nhomThanhTra.ListKeHoachThanhTra.length">{{nhomThanhTra.TEN_NHOM}}
    </td>
    <ng-container ng-repeat="keHoachThanhTra in nhomThanhTra.ListKeHoachThanhTra ">
      <td rowspan="keHoachThanhTra.ListDoiTuong.length">{{keHoachThanhTra.stt}}</td>
      <td rowspan="keHoachThanhTra.ListDoiTuong.length">{{keHoachThanhTra.TEN_KEHOACH}}</td>
      <ng-container ng-repeat="doiTuongThanhTra in keHoachThanhTra.ListDoiTuong">
        <td>{{doiTuongThanhTra.stt}}</td>
        <td>{{doiTuongThanhTra.TEN_DOITUONG}}</td>
      </ng-container>
    </ng-container>
</tbody>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM