前面了解了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實現數據的綁定即可:
Search:<input ng-model="query"> Sort by:<select ng-model="order"> <option value="name">name</option> <option value="age">age</option> </select>
AngularJS是一門基于DOM的框架語言,因此不需要實現任何的監聽器以及事件觸發器,當query所在的輸入框發生任何改變時,就會觸發輸入框與下面的表達式展現的雙向刷新!
相比于其他的一些框架,是基于字符串通過DOM節點innerHTML添加到DOM中,AngularJS的實現方式加快了模型與視圖的展現。并且減少了大量不必要的監聽器啊觸發器啊之類的代碼的編寫,真正實現了類似spring的效果~
數據的展現,可以通過ng-repeat實現。當網頁解析到ng-repeat的時候,會為每一個數組中的元素都克隆一份標簽,進行編譯解析?! ?/p>
<ul class="persons"> <li ng-repeat="person in persons | filter:query | orderBy:order"> {{person.name}} {{person.age}} </li> </ul>
剩下的工作就是需要在script中進行perons數組的初始化:
<div ng-controller="ctl"> ... </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> 代碼以及結果
最后貼上全部的代碼:
<!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>使用結果:
在默認情況下,使用age進行排序:

通過選擇則可以使用name排序

再輸入字符的時候,會自動過查詢過濾掉一些選項

以上就是對AngularJS 過濾與排序的資料整理,后續繼續補充相關資料,謝謝大家對本站的支持!
新聞熱點
疑難解答