1,currency(貨幣)css
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>ng demo</title> </head> <body ng-controller="ctrl"> <div ng-controller="ctrl"> <input type="number" ng-model="amount" aria-label="amount"> <br> 默認的貨幣符號($): <span >{{amount | currency}}</span><br> 自定義的貨幣符號(USD$): <span >{{amount | currency:"RMB ¥"}}</span><br/> 不帶小數部分的貨幣符號-四捨五入 (0): <span id="currency-no-fractions">{{amount | currency:"USD$":0}}</span> </div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) .controller('ctrl', ['$scope', function($scope) { $scope.amount = 1234.56;//設定默認的金錢總數值 }]);
頁面顯示:html
2,date(日期)
date 過濾器主要實現日期轉換json
<!DOCTYPE html> <html> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>ng demo</title> </head> <body ng-controller="ctrl"> <span ng-non-bindable>{{1288323623006 | date:'medium'}}</span>:<!--ng-non-bindable表示不綁定--> <span>{{1288323623006 | date:'medium'}}</span><br><!--angular綁定顯示--> <span ng-non-bindable>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span>: <span>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span><br> <span ng-non-bindable>{{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}</span>: <span>{{'1288323623006' | date:'MM/dd/yyyy @ h:mma'}}</span><br> <span ng-non-bindable>{{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}</span>: <span>{{'1288323623006' | date:"MM/dd/yyyy 'at' h:mma"}}</span><br> </body> <script src="js2/angular.js"></script> </html>
頁面顯示:(這個demo主要經過angular綁定和不綁定來區分date過濾器的做用)
3,filter-實現搜索功能數組
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>filter demo</title> </head> <body ng-controller="ctrl"> <!--定義數據源--> <label>搜索:<input ng-model="searchText"></label> <table id="searchTextResults"> <tr><th>名字</th><th>電話</th></tr> <tr ng-repeat="friend in friends | filter:searchText"> <td>{{friend.name}}</td> <td>{{friend.phone}}</td> </tr> </table> <hr> <label>任意搜索: <input ng-model="search.$"></label> <br> <label>根據名字搜索:<input ng-model="search.name"></label><br> <label>根據電話搜索:<input ng-model="search.phone"></label><br> <label>Equality <input type="checkbox" ng-model="strict"></label><br> <table id="searchObjResults"> <tr><th>名字</th><th>電話:</th></tr> <tr ng-repeat="friendObj in friends | filter:search:strict"> <td>{{friendObj.name}}</td> <td>{{friendObj.phone}}</td> </tr> </table> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', function($scope) { $scope.friends = [{name:'John', phone:'555-1276'}, {name:'Mary', phone:'800-BIG-MARY'}, {name:'Mike', phone:'555-4321'}, {name:'Adam', phone:'555-5678'}, {name:'Julie', phone:'555-8765'}, {name:'Juliette', phone:'555-5678'}, {name:'Adameeson',phone:'555-6983'}, {name:'Mikechel',phone:'555-9872'}] }]);
頁面實現:
4,json-能夠將js對象轉換成json字符串app
<!DOCTYPE html> <html> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>filter demo</title> </head> <body> <pre id="default-spacing">{{ {'name':'value'} | json }}</pre> <pre id="custom-spacing">{{ {'name':'value'} | json:9}}</pre>//這裏的3表明轉換後的json字符串前面的空格位置. </body> <script src="js2/angular.js"></script> </html>
頁面顯示結果:
5,limitTo-能夠建立一個新的數組或者是字符串只包含指定數量的元素,能夠經過正負數肯定獲取原數組前或者是後幾個元素的值。spa
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>limitTo demo</title> </head> <body> <div ng-controller="ctrl"> <label> <!--下面的input框都定義成number類型是由於number類型被angular封裝能夠點擊增長和減--> 限制數字長度 {{numbers}} 到: <input type="number" step="1" ng-model="numLimit"> </label> <p>數值輸出: {{ numbers | limitTo:numLimit }}</p> <label> 限制字母長度 {{letters}} 到: <input type="number" step="1" ng-model="letterLimit"> </label> <p>字母輸出: {{ letters | limitTo:letterLimit }}</p> <label> 限制數字長度 {{longNumber}} 到: <input type="number" step="1" ng-model="longNumberLimit"> </label> <p>長數字輸出: {{ longNumber | limitTo:longNumberLimit }}</p> </div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', function($scope) { $scope.numbers = [1,2,3,4,5,6,7,8,9]; $scope.letters = "abcdefghi"; $scope.longNumber = 2345432342; $scope.numLimit = 3; $scope.letterLimit = -4; $scope.longNumberLimit = 5; }]);
頁面實現:
6,lowercase/uppercase-將大寫字符串轉爲小寫/將小寫轉爲大寫code
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>lowercase demo</title> </head> <body ng-controller="ctrl"> <div ng-model="strs">{{strs|lowercase}}</div> <div ng-model="strs">{{str|uppercase}}</div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', function($scope) { $scope.strs = "HUHAO"; $scope.str = "huhao"; }]);
頁面分別呈現出小寫的"huhao"和大寫的"HUHAO"
7,number格式htm
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>number demo</title> </head> <body> <div ng-controller="ctrl"> <label>輸入數字: <input ng-model='val'></label><br> 默認格式: <span id='number-default'>{{val | number}}</span><br> 無小數點: <span>{{val | number:0}}</span><br> 負數格式: <span>{{-val | number:4}}</span><br> 保留3位: <span>{{val | number:3}}</span><br> </div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', function($scope) { $scope.val = 1234.56789; }]);
頁面顯示:
8.1,orderBy-用來對數組進行數組或字母排序對象
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>orderBy demo</title> </head> <body> <div ng-controller="ctrl"> <table border="1px solid red"> <tr> <th>姓名</th> <th>電話號碼</th> <th>年齡</th> </tr> <!--按照年齡從大到小排列--> <tr ng-repeat="friend in friends | orderBy:'-age'"> <td>{{friend.name}}</td> <td>{{friend.phone}}</td> <td>{{friend.age}}</td> </tr> <!--按照年齡從小到大排列(默認)--> <tr ng-repeat="friend in friends | orderBy:'age'"> <td>{{friend.name}}</td> <td>{{friend.phone}}</td> <td>{{friend.age}}</td> </tr> <!--按照名字字母順序排列--> <tr ng-repeat="friend in friends | orderBy:'name'"> <td>{{friend.name}}</td> <td>{{friend.phone}}</td> <td>{{friend.age}}</td> </tr> </table> </div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', function($scope) { $scope.friends = [{name:'John', phone:'555-1212', age:10}, {name:'Mary', phone:'555-9876', age:19}, {name:'Mike', phone:'555-4321', age:21}, {name:'Adam', phone:'555-5678', age:35}, {name:'Julie', phone:'555-8765', age:29}]; }]);
頁面顯示:
8.2,實現反轉排序排序
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>orderBy demo</title> </script> <style type="text/css"> //這個樣式是定義上下排序圖標的 .sortorder:after { content: '\25b2'; } .sortorder.reverse:after { content: '\25bc'; } </style> </head> <body> <div> <div ng-controller="ctrl"> <pre>根據什麼來排序(Sorting predicate) = {{predicate}}; || 判斷是否reverse = {{reverse}}</pre> <hr/> [ <a href="" ng-click="predicate=''">不按照任何條件排序</a> ] <table class="friend"> <tr> <th> <a href="" ng-click="order('name')">姓名</a> <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span> </th> <th> <a href="" ng-click="order('phone')">電話號碼</a> <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span> </th> <th> <a href="" ng-click="order('age')">年齡</a> <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span> </th> </tr> <tr ng-repeat="friend in friends | orderBy:predicate:reverse"> <td>{{friend.name}}</td> <td>{{friend.phone}}</td> <td>{{friend.age}}</td> </tr> </table> </div> </div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', function($scope) { $scope.friends = [{name:'John', phone:'555-1212', age:10}, {name:'Mary', phone:'555-9876', age:19}, {name:'Mike', phone:'555-4321', age:21}, {name:'Adam', phone:'555-5678', age:35}, {name:'Julie', phone:'555-8765', age:29}]; $scope.predicate = 'age'; $scope.reverse = true; $scope.order = function(predicate) { $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; $scope.predicate = predicate; }; }]);
頁面顯示:
8.3 手動注入$filter來調用orderBy的過濾器
<!DOCTYPE html> <html ng-app="app"> <head> <meta Content-Type="html/text;charset=UTF-8"> <title>orderBy demo</title> </head> <body> <div ng-controller="ctrl"> <table> <tr> <th><a href="" ng-click="reverse=false;order('name', false)">姓名</a> ^<a href="" ng-click="order('-name',false)">^</a>^</th> <th><a href="" ng-click="reverse=!reverse;order('phone', reverse)">電話號碼</a></th> <th><a href="" ng-click="reverse=!reverse;order('age',reverse)">年齡</a></th> </tr> <tr ng-repeat="friend in friends"> <td>{{friend.name}}</td> <td>{{friend.phone}}</td> <td>{{friend.age}}</td> </tr> </table> </div> </body> <script src="js2/angular.js"></script> <script src="js/submit.js"></script> </html> js var APP = angular.module('app', []) APP.controller('ctrl', ['$scope', '$filter', function($scope, $filter) {//也能夠手動注入$filter來調用orderBy的過濾器 var orderBy = $filter('orderBy'); $scope.friends = [ { name: 'John', phone: '555-1212', age: 10 }, { name: 'Mary', phone: '555-9876', age: 19 }, { name: 'Mike', phone: '555-4321', age: 21 }, { name: 'Adam', phone: '555-5678', age: 35 }, { name: 'Julie', phone: '555-8765', age: 29 } ]; $scope.order = function(predicate, reverse) { $scope.friends = orderBy($scope.friends, predicate, reverse); }; $scope.order('-age',false); }]);
頁面顯示: