AngularJS 过滤器

AngularJS 过滤器

AngularJS过滤器重要包含两类,一类是内置过滤器;另外一个类是自定义过滤器。

下面是常用的几种过滤器

过滤器

描述

uppercase

将字符转换为大写

lowercase

将字符转换为小写

currency

将数字转换为货币格式

orderBy

排序

filter

从数组中筛选一个子集

过滤器可以使用管道字符“|”添加到表达式和指令当中

例如 将字符串转化为大写 

<span >{{"tom IS A boy"|uppercase}}</span>

下面是常用表达式的代码示例:

  1 <html>
  2 <head>
  3     <title></title>
  4     <meta charset="utf-8" />
  5     <script src="js/angular.min.js"></script>
  6     <style>
  7         .frame {
  8             height: 250px;
  9             padding: 20px;
 10             margin: 20px;
 11             background-color: lightblue;
 12             border: 1px solid black;
 13         }
 14     </style>
 15 </head>
 16 <body ng-app="myApp">
 17     <div ng-controller="myCtrl">
 18 
 19         <div class="frame">
 20             <!--转换为大写-->
 21             <h3>转换为大写</h3>
 22             <span >{{"tom IS A boy"|uppercase}}</span><br />
 23             <!--转换为小写-->
 24             <h3>转换为小写</h3>
 25             <span >{{"tom IS A boy"|lowercase}}</span><br />
 26             <!--转换为货币-->
 27             <h3>转换为货币</h3>
 28             <span>{{100 | currency}}</span>
 29         </div>
 30         <!--过滤筛选-->
 31         <div class="frame">
 32             <h3>输入过滤</h3>
 33             <span>筛选记录</span><input ng-model="test" type="text" />
 34             <ul>
 35                 <li ng-repeat="item in names | filter :test ">
 36                     {{item.name +" "+item.age}}
 37                 </li>
 38             </ul>
 39         </div>
 40         <!--自定义过滤器-->
 41         <div class="frame">
 42             <h3>自定义过滤器</h3>
 43             {{"Tom" | sayHello}}
 44         </div>
 45 
 46         <!--记录条数过滤-->
 47         <div class="frame">
 48             <h3>记录条数过滤</h3> 
 49         显示条数:<input ng-model="pageCount" type="number"/>
 50             <ul>
 51                 <li ng-repeat="item in names | limitTo:pageCount">
 52                     {{item.name +" "+item.age}}
 53                 </li>
 54             </ul>
 55         </div>
 56 
 57         <div class="frame">
 58             <h3>输入过滤</h3>
 59             <span>筛选记录</span><input ng-model="test" type="text" />
 60             <ul>
 61                 <li ng-repeat="item in names | filter :test ">
 62                     {{item.name +" "+item.age}}
 63                 </li>
 64             </ul>
 65         </div>
 66 
 67         <!--默认排序-->
 68         <div class="frame">
 69             <h3>按照年龄默认排序</h3>
 70             <ul>
 71                 <li ng-repeat="itme in names">
 72                     {{"姓名:"+itme.name +"  年龄:" + itme.age}}
 73                 </li>
 74             </ul>
 75         </div>
 76         <!--升序-->
 77         <div class="frame">
 78             <h3>按照年龄升序</h3>
 79             <ul>
 80                 <li ng-repeat="itme in names | orderBy:'age'">
 81                     {{"姓名:"+itme.name +"  年龄:" + itme.age}}
 82                 </li>
 83             </ul>
 84         </div>
 85         <!--倒序-->
 86         <div class="frame">
 87             <h3>按照年龄倒序</h3>
 88             <ul>
 89                 <li ng-repeat="itme in names | orderBy:'-age'">
 90                     {{"姓名:"+itme.name +"  年龄:" + itme.age}}
 91                 </li>
 92             </ul>
 93         </div>
 94 
 95         <!--多属性排序-->
 96         <div class="frame">
 97             <h3>年龄正序 姓名倒序</h3>
 98             <ul>
 99                 <li ng-repeat="itme in names | orderBy:['age','-name']">
100                     {{"姓名:"+itme.name +"  年龄:" + itme.age}}
101                 </li>
102             </ul>
103         </div>
104 
105         <!--动态排序-->
106         <div class="frame">
107             <h3>
108                 按照年龄排序
109                 <button ng-click="sort()">{{sortText}}</button>
110             </h3>
111             <ul>
112                 <li ng-repeat="itme in names | orderBy:sortFlag">
113                     {{"姓名:"+itme.name +"  年龄:" + itme.age}}
114                 </li>
115             </ul>
116         </div>
117     </div>
118 
119 
120     <script>
121         var app = angular.module("myApp", []);
122         app.controller("myCtrl", function ($scope) {
123             $scope.names = [
124                 { "name": "姓名1", "age": 30 },
125                 { "name": "姓名2", "age": 29 },
126                 { "name": "姓名3", "age": 28 },
127                 { "name": "姓名4", "age": 26 },
128                 { "name": "姓名5", "age": 26 },
129                 { "name": "姓名6", "age": 15 },
130                 { "name": "姓名7", "age": 16 },
131                 { "name": "姓名8", "age": 17 },
132             ];
133             $scope.sortFlag = "age";
134             $scope.sortText = "降序";
135             $scope.sort = function () {
136                 $scope.sortFlag = $scope.sortFlag === "age" ? "-age" : "age";
137                 $scope.sortText = $scope.sortFlag === "age" ? "降序" : "升序";
138             } 
139         });
140     //自定义sayHello过滤器
141         app.filter("sayHello", function () {
142             return function (text) {
143                 return text + " say: Hello World";
144             }
145         })
146     </script>
147 </body>
148 </html>
原文地址:https://www.cnblogs.com/zhaochengshen/p/6708950.html