Группировка ng-Table: открывать только строки за раз

Я бы отображал только одну открытую строку за раз в ng-Table. В настоящее время, если строка открыта, она останется открытой до тех пор, пока пользователь не свернет ее вручную. По мере открытия каждой новой строки отображается все больше и больше данных.

Я использую этот код, чтобы инициировать таблицу со всеми закрытыми строками, но я не понимаю, как оставить закрытой только одну строку.

app.controller('groupCtrl', function($scope) {
   $scope.group.$hideRows = true;
});

Этот plunkr показывает текущий прогресс (http://plnkr.co/edit/2ABVrN?p=preview ).

Тед


person Tedinoz    schedule 19.07.2014    source источник


Ответы (1)


Идея передать все группы в отдельный контроллер группы и свернуть все развернутые группы, кроме выбранных

просмотреть html:

<tbody ng-repeat="group in $groups | orderBy:'value'"  sortable="'sortletter'" 
  ng-controller="groupCtrl">
  <tr class="ng-table-group">
    <td colspan="{{$columns.length}}">
      <a href="" ng-click="switchGroup(group, $parent.$groups)">

группаCtrl:

app.controller('groupCtrl', function($scope) {
  //console.log($scope); 
  $scope.group.$hideRows = true;
  //     console.log("scope.group.$hideRows"+$scope.group.$hideRows);

  $scope.switchGroup = function(group, groups){
    if(group.$hideRows){
      angular.forEach(groups, function(g){
        if(g !== group){
          g.$hideRows = true;
        }
      });
    }

    group.$hideRows = !group.$hideRows;
  };
});    

Планкер

person Yuriy Rozhovetskiy    schedule 19.07.2014