AngularJS 過濾與排序詳解及實例代碼
前面了解了AngularJS的使用方法,這里就簡單的寫個小程序,實現(xiàn)查詢過濾以及排序的功能。
本程序中可以了解到:
1 angularjs的過濾器
2 ng-repeat的使用方法
3 控制器的使用
4 數(shù)據(jù)的綁定
程序設(shè)計分析
首先,如果要是先查詢過濾,就要使用到AngularJS中的 過濾器filter 了。
直接在表達式的后面使用管道命令符 | ,按照下面的寫法就可以達到一個過濾的效果:
{{ persons | filter:query }}
通過使用filter實現(xiàn)過濾操作,query是查詢過濾時輸入的字符串。
類似地,使用orderBy就可以實現(xiàn)排序的功能:
{{ persons | filter:query | orderBy:order }}
上面的查詢以及排序涉及到兩個變量,query和order。在這里直接使用ng-model實現(xiàn)數(shù)據(jù)的綁定即可:
Search:<input ng-model="query">
Sort by:<select ng-model="order">
<option value="name">name</option>
<option value="age">age</option>
</select>
AngularJS是一門基于DOM的框架語言,因此不需要實現(xiàn)任何的監(jiān)聽器以及事件觸發(fā)器,當query所在的輸入框發(fā)生任何改變時,就會觸發(fā)輸入框與下面的表達式展現(xiàn)的雙向刷新!
相比于其他的一些框架,是基于字符串通過DOM節(jié)點innerHTML添加到DOM中,AngularJS的實現(xiàn)方式加快了模型與視圖的展現(xiàn)。并且減少了大量不必要的監(jiān)聽器啊觸發(fā)器啊之類的代碼的編寫,真正實現(xiàn)了類似spring的效果~
數(shù)據(jù)的展現(xiàn),可以通過ng-repeat實現(xiàn)。當網(wǎng)頁解析到ng-repeat的時候,會為每一個數(shù)組中的元素都克隆一份標簽,進行編譯解析?! ?/p>
<ul class="persons">
<li ng-repeat="person in persons | filter:query | orderBy:order">
{{person.name}}
{{person.age}}
</li>
</ul>
剩下的工作就是需要在script中進行perons數(shù)組的初始化:
<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>
代碼以及結(jié)果
最后貼上全部的代碼:
<!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>
使用結(jié)果:
在默認情況下,使用age進行排序:

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

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

以上就是對AngularJS 過濾與排序的資料整理,后續(xù)繼續(xù)補充相關(guān)資料,謝謝大家對本站的支持!
相關(guān)文章
Angular2中監(jiān)聽數(shù)據(jù)更新的方法
今天小編就為大家分享一篇Angular2中監(jiān)聽數(shù)據(jù)更新的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Angular 1.x個人使用的經(jīng)驗小結(jié)
這篇文章主要給大家介紹了關(guān)于Angular 1.x個人使用的一些經(jīng)驗,屬于一些基礎(chǔ)入門教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-07-07
Angular 4中如何顯示內(nèi)容的CSS樣式示例代碼
這篇文章主要給大家介紹了關(guān)于Angular 4中如何顯示內(nèi)容的CSS樣式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11
使用Angular Cli如何創(chuàng)建Angular私有庫詳解
這篇文章主要給大家介紹了關(guān)于使用Angular Cli如何創(chuàng)建Angular私有庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01

