1. 程式人生 > >AngularJS 過濾與排序詳解及實例代碼

AngularJS 過濾與排序詳解及實例代碼

highlight 進行 angularjs ngs key 管道命令 個數 變量 數據

這篇文章主要介紹了AngularJS 過濾與排序,實現查詢過濾以及排序的功能。

通過這篇文章可以了解到

  1、 angularjs的過濾器

  2、 ng-repeat的使用方法

  3、 控制器的使用

  4、 數據的綁定

首先,如果要是先查詢過濾,就要使用到AngularJS中的 過濾器filter 了。

  直接在表達式的後面使用管道命令符 | ,按照下面的寫法就可以達到一個過濾的效果:

  {{ persons | filter:query }}

  通過使用filter實現過濾操作,query是查詢過濾時輸入的字符串。

  類似地,使用orderBy就可以實現排序的功能:

  {{ persons | filter:query | orderBy:order }}

上面的查詢以及排序涉及到兩個變量,query和order。在這裏直接使用ng-model實現數據的綁定即可:

搜索:<input ng-model="query"> 排序:<select ng-model="order">   <option value="name">name</option>   <option value="age">age</option>   </select>

數據的展現,可以通過ng-repeat實現。當網頁解析到ng-repeat的時候,會為每一個數組中的元素都克隆一份標簽,進行編譯解析。   

     <ul class="persons"> <li ng-repeat="person in persons | filter:query | orderBy:order"> {{person.name}} {{person.age}} </li> </ul> 這些就是需要在script中進行perons數組的初始化: <script type="text/javascript"> function ctl($scope){
$scope.persons = [ {"name":"xingoo","age":25}, {"name":"zhangsan","age":18}, {"name":"lisi","age":20}, {"name":"wangwu","age":30} ]; $scope.order = "age"; } </script> 實例: <!doctype html> <html ng-app> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script> </head> <body> <div ng-controller="ctl"> Search:<input ng-model="query"> Sort by:<select ng-model="order"> <option value="name">name</option> <option value="age">age</option> </select> <ul class="persons"> <li ng-repeat="person in persons | filter:query | orderBy:order"> {{person.name}} {{person.age}} </li> </ul> </div> <script type="text/javascript"> function ctl($scope){ $scope.persons = [ {"name":"xingoo","age":25}, {"name":"zhangsan","age":18}, {"name":"lisi","age":20}, {"name":"wangwu","age":30} ]; $scope.order = "age"; } </script> </body> </html>

AngularJS 過濾與排序詳解及實例代碼