AngularJS フィルター


フィルターはパイプ文字(|)を使用して式やディレクティブに追加できます。


AngularJS フィルター

AngularJS フィルターはデータの変換に使用できます:

フィルター 説明
currency 数値を通貨形式にフォーマットします。
filter 配列項目からサブセットを選択します。
lowercase 文字列を小文字にフォーマットします。
orderBy 特定の式に基づいて配列を並べ替えます。
uppercase 文字列を大文字にフォーマットします。

式にフィルターを追加する

フィルターは、パイプ文字(|)とフィルターを使用して式に追加できます。

(以下の2つのサンプルでは、前の章で説明した person コントローラーを使用します。)

uppercaseフィルターは文字列を大文字にフォーマットします:

AngularJS サンプル

<div ng-app="myApp" ng-controller="personCtrl">

<p>名前は{{ lastName | uppercase }}</p>

</div>

試してみる »

lowercaseフィルターは文字列を小文字にフォーマットします:

AngularJS サンプル

<div ng-app="myApp" ng-controller="personCtrl">

<p>名前は{{ lastName | lowercase }}</p>

</div>

試してみる »

currency フィルター

currencyフィルターは数値を通貨形式にフォーマットします:

AngularJS サンプル

<div ng-app="myApp" ng-controller="costCtrl">

<input type="number" ng-model="quantity">
<input type="number" ng-model="price">

<p>合計価格 ={{ (quantity * price) | currency }}</p>

</div>

試してみる »

ディレクティブにフィルターを追加する

フィルターは、パイプ文字(|)とフィルターを使用してディレクティブに追加できます。

orderByフィルターは式に基づいて配列を並べ替えます:

AngularJS サンプル

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
  <li ng-repeat="x in names | orderBy:'country'">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>

試してみる »

入力のフィルタリング

入力フィルターは、パイプ文字(|)とフィルターを使用してディレクティブに追加できます。フィルターの後にはコロンとモデル名が続きます。

filterフィルターは配列からサブセットを選択します:

AngularJS サンプル

<div ng-app="myApp" ng-controller="namesCtrl">

<p><input type="text" ng-model="test"></p>

<ul>
  <li ng-repeat="x in names | filter:test | orderBy:'country'">
    {{ (x.name | uppercase) + ', ' + x.country }}
  </li>
</ul>

</div>

試してみる »

カスタムフィルター

以下のサンプルではカスタムフィルターを定義しますreverse、文字列を反転させます:

AngularJS サンプル

var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.msg = "サンプル"; }); app.filter('reverse', function() { //依存関係を注入できます return function(text) { return text.split("").reverse().join(""); } });

試してみる »
その他の拡張