5

我正在使用来自http://plnkr.co/edit/CBcbkc的 ng-table 分组示例

现在该表已通过扩展行进行初始化,但我希望将它们最小化,因为我有超过 100 条记录。我怎样才能做到这一点?

4

3 回答 3

10

您可以group.$hideRows使用以下方法设置为 true ngInit

<tbody ng-repeat="group in $groups" ng-init="group.$hideRows = true">

更新
我想找到一个更好的解决方案,因为角度文档不鼓励使用ngInit访问范围变量。

您可以为在以下位置创建的每个组创建一个控制器ng-repeat

<tbody ng-repeat="group in $groups" ng-controller="groupCtrl">

然后,您可以直接访问组对象。这样做的一个优点是能够有条件地扩展组:

.controller('groupCtrl', function($scope) {
  if ($scope.group.value != 'Administrator')
    $scope.group.$hideRows = true;
});

http://plnkr.co/gXfsBq

仅供参考
,我想知道为什么我在源代码中找不到任何引用$hideRows$hideRows事实证明,在单击组对象之前,该组对象没有属性。为了证明这一点,我$hideRows用一个虚构的名字替换了它,它的工作原理是一样的。

  <tbody ng-repeat="group in $groups">
    <tr class="ng-table-group">
      <td colspan="{{$columns.length}}">
        <a href="" ng-click="group.invokeInvisbility = !group.invokeInvisbility">
          <span class="glyphicon" ng-class="{ 'glyphicon-chevron-right': group.invokeInvisbility, 'glyphicon-chevron-down': !group.invokeInvisbility }"></span>
          <strong>{{ group.value }}</strong>
        </a>
      </td>
    </tr>
    <tr ng-hide="group.invokeInvisbility" ng-repeat="user in group.data">

难怪你找不到初始化它的方法。

于 2014-03-15T06:00:17.323 回答
3

您可以通过属性 'groupOptions' 告诉 ngTable 不要扩展它,如下所示:

var table = new NgTableParams({ group: 'name' }, { dataset: users, groupOptions: { isExpanded: false } });
于 2017-04-12T12:24:45.867 回答
0

只需添加groupOptions: {isExpanded:false}参数部分。

以下是您的代码的副本,其中包含适当的附加组件。

$scope.tableParams = new ngTableParams({
        page: 1,            // show first page
        count: 10,          // count per page
        groupOptions: {isExpanded:false}
    }, {
        groupBy: 'role',
        total: data.length,
        getData: function($defer, params) {
            var orderedData = params.sorting() ?
                    $filter('orderBy')(data, $scope.tableParams.orderBy()) :
                    data;

            $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
        }
    });
于 2019-05-26T20:50:04.697 回答