0

我想在 ng-Table 中一次只显示一个打开的行。目前,如果打开一行,它将保持打开状态,直到用户手动折叠它。随着每个新行的打开,显示的数据越来越多。

我正在使用这段代码来启动所有行都关闭的表,但我对如何只关闭一行感到困惑。

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

这个 plunkr 显示了迄今为止的进展(http://plnkr.co/edit/2ABVrN?p=preview)。

泰德

4

1 回答 1

2

将所有组传递给单个组控制器并折叠除选定组之外的所有扩展组的想法

查看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)">

组控制:

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;
  };
});    

普朗克

于 2014-07-19T15:45:24.023 回答