angularJS
ng-repeat指令
作用:遍歷集合-通過in的方式遍歷每一項
如:
ng-app:初始化angularjs庫的指令
ng-controller:調用控制器把數據、視圖鏈接在一起
ng-click:點擊操作事件的指令
ng-model:將視圖中的數據與JS中的數據進行綁定
代碼示例:
var m=angular.module('myApp',[]);
m.controller('Aaa',['$scope',function($scope){
$scope.dataList = [
'aaaaaa','bbbbbb','cccccc'
];
}]);
<div ng-controller="Aaa">
<ul>
<li ng-repeat="data in dataList">{{data}}</li><!--用data遍歷數據同時自動生成列表並展現在頁面中,data是指數據中的值-->
</ul>
</div>
頁面展示示例:
- aaaaaa
- bbbbbb
- cccccc
示例:表格的操作(可點擊姓名、年齡進行排序,點擊一次從大到小,兩次從大到小。同時可進行內容搜索並輸出)
<script>
var m=angular.module('myApp',[]);
m.controller('Aaa',['$scope','$filter',function($scope,$filter){
var oriArr = [
{name:"Tom",age:"20"},
{name:"Lucy",age:"18"},
{name:"Lily",age:"32"},
{name:"Jack",age:"40"}
];
$scope.dataList = oriArr;
$scope.fnSort = function(arg){
arguments.callee['fnSort'+arg]=!arguments.callee['fnSort'+arg];//掛載arg充當開關同時爲了防止與系統自帶的屬性相沖突故在前加上‘fnSort’
$scope.dataList = $filter('orderBy')($scope.dataList,arg,arguments.callee['fnSort'+arg]);
}
$scope.fnFilter = function(){
$scope.dataList = $filter('filter')(oriArr,$scope.filterValue);
}
}]);
</script>
<div ng-controller="Aaa">
<input type="text" ng-model="filterValue"/><input type="button" ng-click="fnFilter()" value="搜索" />
<table border="1">
<tr>
<th ng-click="fnSort('name')">姓名</th>
<th ng-click="fnSort('age')">年齡</th>
</tr>
<tr ng-repeat="data in dataList">
<td>{{data.name}}</td>
<td>{{data.age}}</td>
</tr>
</table>
</div>
頁面展示示例:
表格全部輸出:
表格按照年齡從小到大排序:
根據搜索內容查詢表格內容:
ng-repeat的擴展部分
$index:索引號
代碼示例:
<script>
var m=angular.module('myApp',[]);
m.controller('Aaa',['$scope',function($scope){
$scope.dataList = [
'aaaaaa','bbbbbb','cccccc','dddddd','eeeeee'
]
}])
</script>
<body>
<div ng-controller="Aaa">
<ul>
<li ng-repeat="data in dataList">{{$index}}</li>
</ul>
</div>
</body>
頁面展示示例:
$first:數據的第一項返回真true,其它項則均返回false
代碼示例:
<li ng-repeat="data in dataList">{{$first}}</li>
頁面展示示例:
$middle:除了首項、尾項返回false,其餘均返回true,類似與first
$last:數據的最後一項返回真true,其它項則均返回false
$even:數據的奇數行返回true,偶數行返回false
$odd:數據的偶數行返回true,奇數行返回false
ng-repeat-start:在對多個標籤進行循環時,放在循環的第一個標籤,使用方法與ng-repeat相同,同時可將數據進行鏈接並輸出。
ng-repeat-end:在對多個標籤進行循環時,放在循環的最後一個標籤,使用方法與ng-repeat相同,同時可將數據進行鏈接並輸出。
示例(隔行變色):
代碼示例:
<style type="text/css">
.active1 { background:red; }
.active2 {background: blue;}
</style>
<script>
var m=angular.module('myApp',[]);
m.controller('Aaa',['$scope',function($scope){
$scope.dataList = [
'aaaaaa','bbbbbb','cccccc','dddddd','eeeeee'
]
}])
</script>
<body>
<div ng-controller="Aaa">
<ul>
<li class="{{$even?'active1':'active2'}}" ng-repeat="data in dataList">{{data}}</li>
</ul>
</div>
</body>
頁面結果展示: