フィルター (AngularJS)
[最終更新] (2019/06/03 00:46:30)
最近の投稿
注目の記事

概要

AngularJS にはモデルの値を表示用に変換するフィルタという機能があります。コマンドラインにおけるパイプのように使用します。公式ドキュメントはこちらです。

フィルターの使用例

<!DOCTYPE html>
<html lang="ja" ng-app="myApp">
<head>
  <meta charset="utf-8">
  <script type="text/javascript" src="angular.min.js"></script>
</head>
<body>

ここにサンプルコードを記述。

</body>
</html>

filter (絞り込み)

<div ng-controller="myController">
  <p>部分一致</p>
  <ul>
    <li ng-repeat="item in mylist | filter:'str'">{{ item }}</li>
  </ul>
  <p>完全一致 ({{ filtered_mylist.length }} 件)</p>
  <ul>
    <li ng-repeat="item in mylist | filter:'str':true as filtered_mylist">{{ item }}</li>
  </ul>
</div>

<script>
 angular.module('myApp', []).controller('myController', ['$scope', function($scope){
   $scope.mylist = [
     { key: 'str' },
     'abc',
     'string',
     'str'
   ];
 }]);
</script>

limitTo (表示個数の制限)

<div ng-controller="myController">
  <ul>
    <li ng-repeat="item in mylist | limitTo:2">{{ item }}</li>
  </ul>
</div>

<script>
 angular.module('myApp', []).controller('myController', ['$scope', function($scope){
   $scope.mylist = [1,2,3,4,5];
 }]);
</script>

orderBy (ソート)

<div ng-controller="myController">
  <p>昇順</p>
  <ul>
    <li ng-repeat="item in mylist | orderBy:'mykey'">{{ item.mykey }}</li>
  </ul>
  <p>降順</p>
  <ul>
    <li ng-repeat="item in mylist | orderBy:'mykey':true | limitTo:2">{{ item.mykey }}</li>
  </ul>
</div>

<script>
 angular.module('myApp', []).controller('myController', ['$scope', function($scope){
   $scope.mylist = [
     { mykey: 3 },
     { mykey: 1 },
     { mykey: 2 }
   ];
 }]);
</script>

lowercase / uppercase (小文字化、大文字化)

<div ng-controller="myController">
  <p>{{ myModel | lowercase }}</p>
  <p>{{ myModel | uppercase }}</p>
</div>

<script>
 angular.module('myApp', []).controller('myController', ['$scope', function($scope){
   $scope.myModel = 'Abc';
 }]);
</script>

number (数値の整形)

小数第二位まで表示するためには :2 とします。

<div ng-controller="myController">
  <input type="text" ng-model="myNumber">
  <p>{{ myNumber | number:2 }}</p>
</div>

<script>
 angular.module('myApp', []).controller('myController', ['$scope', function($scope){
   $scope.myNumber = 10 / 3;
 }]);
</script>

json (オブジェクトを JSON 形式文字列に変換)

この続きが気になる方は
関連ページ
    概要 AngularJS の単体テストに Node.js, Karma, Jasmine, PhantomJS を利用する場合の例をまとめます。 インストール サーバサイド JavaScript 環境である Node.js およびそのパッケージマネージャ npm をインストールします。CentOS 6 の場合は epel を利用すると簡単です。