angularjs實現分頁和搜尋
阿新 • • 發佈:2019-01-27
話不多說,上程式碼
<html class="no-js" ng-app="myApp"> <body ng-controller="mainController"> <table class="am-table am-table-striped am-table-hover table-main"> <thead> <tr> <th>name</th> </tr> </thead> <tbody> <tr ng-repeat="item in houses | limitTo:listsPerPage"> <td>{{item.c}}</td> </tr> </tbody> </table> <div class="am-cf"> 共 {{dataNum}} 條記錄/當前第 {{currentPage+1}} 頁 共 {{pages}} 頁 <div class="am-fr"> <ul class="am-pagination"> <li><a href="javascript:;" ng-click="prevPage()">«</a></li> <li><a href="javascript:;" ng-click="nextPage()">»</a></li> </ul> </div> </div> <script src="plugins/angularjs/angular.min.js" type="text/javascript"></script> </body> </html>
<script> var app = angular.module("myApp", []); app.controller("mainController", function ($scope, $http) { //測試資料 var $data = {"fs":[{"c":"張一"},{"c":"張二"},{"c":"張三"},{"c":"張四"},{"c":"李一"},{"c":"李二"},{"c":"李三"},{"c":"李四"},{"c":"王一"},{"c":"王二"},{"c":"王三"},{"c":"王四"}]}; $scope.currentPage = 0;//設定當前頁是 0 $scope.listsPerPage = 3;//設定每頁顯示3個 //上一頁 $scope.prevPage = function(){ if($scope.currentPage > 0){ $scope.currentPage--; } } //下一頁 $scope.nextPage = function(){ if ($scope.currentPage < $scope.pages-1){ $scope.currentPage++; } } //監聽搜尋條件 $scope.$watch('search.c', function(){ $scope.currentPage = 0; searchResult(); }); //監聽翻頁 $scope.$watch('currentPage', function(){ searchResult(); }); //搜尋或翻頁結果 function searchResult(){ var out = []; if($scope.search){ angular.forEach($data.fs,function(k,v){ if(k.c.indexOf($scope.search.c)>-1){ out.push(k); } }); } else{ out = $data.fs; } $scope.houses = out.slice($scope.currentPage*$scope.listsPerPage); $scope.dataNum = out.length; $scope.pages = Math.ceil($scope.dataNum/$scope.listsPerPage); } }); </script>