2017-02-03 4 views
2

In this plunk 지역별로 그룹화 된 사용자 목록이 포함 된 ngTable이 있습니다. 나는 this ngTable grouping demo에서 예를 택했다. 그러나 테이블은 비어있는 것으로 표시되고 행이나 그룹을 표시하지 않습니다. 이 코드의 문제점은 무엇입니까?ngTable 그룹이 작동하지 않습니다.

HTML

<table ng-table="tableParams" class="table table-bordered table-hover"> 
     <colgroup> 
      <col width="50%" /> 
      <col width="30%" /> 
      <col width="20%" /> 
     </colgroup> 
     <tr class="ng-table-group" ng-repeat-start="group in $groups"> 
      <td colspan="3"> 
      <a href="" ng-click="group.$hideRows = !group.$hideRows"> 
       <span class="glyphicon" ng-class="{ 'glyphicon-chevron-right': group.$hideRows, 'glyphicon-chevron-down': !group.$hideRows }"></span> 
       <strong>{{ group.value }}</strong> 
      </a> 
      </td> 
     </tr> 
     <tr ng-repeat="u in data" ng-repeat-end> 
      <td title="'User ID'">{{ u.uid }}</td> 
      <td title="'Name'">{{ u.name }}</td> 
      <td title="'Area'" groupable="'area'">{{ u.area }}</td> 
     </tr> 
    </table> 

자바 스크립트

var app = angular.module('app', ['ngTable']); 

app.controller('myCtl', function($scope,NgTableParams) { 

      $scope.data = [ 
      { uid: 'User 11', name: 'Name 11', area: 'Area 1'}, 
      { uid: 'User 12', name: 'Name 12', area: 'Area 1'}, 
      { uid: 'User 21', name: 'Name 21', area: 'Area 2'}, 
      { uid: 'User 22', name: 'Name 22', area: 'Area 2'} 
      ]; 

      $scope.tableParams = new NgTableParams({ 
       // initial grouping 
       group: "area" 
      },{ 
       dataset: $scope.data 
      }); 
}); 

답변

1

코드는 완벽하게 잘 보인다. 방금 스크립트 하나를 변경하고 페이지에서 몇 가지 결과를 얻었습니다. 그냥

<script src="https://unpkg.com/[email protected]/bundles/ng-table.min.js"></script> 

<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-table/0.8.3/ng-table.min.js"></script> 

을 대체 이것은 내가 매일 사용하는 버전입니다.

+0

'NG 숨기기 =을 '실종되었다 – ps0604

+0

이 [plunk] (http://plnkr.co/edit/M8BcStInfSaSEaq6UVN7?p=preview)를 보시고, 테이블이 올바르게 그룹화되지 않았 으면 모든 항목이 두 그룹 모두에 있습니다 – ps0604

+0

@ ps0604 예, 당신 ng-repeat = "u in data"를 ng-repeat = "u in group.data"로 바꿔야합니다. 이렇게하면 목록의 모든 요소를 ​​반복하지 않습니다. – greenshade

2

@greenshade 답변이 완료되었습니다. 그러나 @greenshade와 마찬가지로, 나는 plunker를 점검했고 당신이 오래된 ng-table 라이브러리 링크를 사용했음을 본다.

https://cdnjs.cloudflare.com/ajax/libs/ng-table/1.0.0/ng-table.min.js 

스크립트 SRC는 다음과 같습니다 : 당신이 CDNjs의 라이브러리에서 작업 할 경우에 당신은 최신 스크립트 URL 사용해야합니다. "그룹 $ hideRows"

<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-table/1.0.0/ng-table.min.js"></script> 

감사

또한
+0

greenshade가 2.0.2 버전을 사용하도록 제안되었으며 버전 1.0.0을 사용하도록 제안했는데 뭔가 빠졌습니까? – ps0604

+0

@ ps0604 항상 최신 버전의 라이브러리를 사용하십시오. cdnjs를 사용하는 경우> 1.0 버전 라이브러리를 사용해야한다고 말합니다. 당신이 얻는 답은 모두 정확합니다. 그러나 ng-model 라이브러리를 사용하는 방법은 다릅니다. –