【Angularjs】 ng-repeatのフィルター・ソート

フィルター「limitTo」

まずは表示数を制御する「limitTo」 ★の箇所がフィルターを利用している箇所です。

limitTo:3で、表示する件数を最大3件としています。

<table>
  <tr>
    <th>Part</th><th>Name</th><th>Title</th>
  </tr>
  <tr ng-repeat="jojo in jojos | limitTo:3"> ★
    <td>{{jojo.part}}</td>
    <td>{{jojo.name}}</td>
    <td>{{jojo.title}}</td>
  </tr>
</table>

並び替え「orderBy」

表示順を制御する「orderBy」 ★の箇所がソートを利用している箇所です。 「orderBy」で指定した配列名を主キーに並び替え表示されます。

下記の例では、orderBy:'title'で、名前順に昇順で表示します。

<table>
  <tr>
    <th>Part</th><th>Name</th><th>Title</th>
  </tr>
  <tr ng-repeat="jojo in jojos | orderBy:'title'">
    <td>{{jojo.part}}</td>
    <td>{{jojo.name}}</td>
    <td>{{jojo.title}}</td>
  </tr>
</table>

また、下記のように配列名にマイナスを加えると降順になります。

<tr ng-repeat="jojo in jojos | orderBy:'-part'">

複合フィルター

下記のようにフィルターは複数指定することもできます。

<tr ng-repeat="jojo in jojos | orderBy:'title' | limitTo:2">