angularJS ng-repeat

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>

頁面結果展示:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章