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">

その後、グループ オブジェクトに直接アクセスできます。これの利点の 1 つは、条件付きでグループを展開できることです。

.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 に答える