AngularJS 過濾與排序詳解及實例代碼
阿新 • • 發佈:2017-06-27
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 過濾與排序詳解及實例代碼