Angularjs 實(shí)現(xiàn)分頁(yè)功能及示例代碼
基于Angularjs實(shí)現(xiàn)分頁(yè)
前言
學(xué)習(xí)任何一門語(yǔ)言前肯定是有業(yè)務(wù)需求來驅(qū)動(dòng)你去學(xué)習(xí)它,當(dāng)然ng也不例外,在學(xué)習(xí)ng前我第一個(gè)想做的demo就是基于ng實(shí)現(xiàn)分頁(yè),除去基本的計(jì)算思路外就是使用指令封裝成一個(gè)插件,在需要分頁(yè)的列表頁(yè)面內(nèi)直接引用。
插件
在封裝分頁(yè)插件時(shí)我實(shí)現(xiàn)了幾種方式總體都比較零散,最后找到了一個(gè)朋友(http://www.miaoyueyue.com/archives/813.html)封裝的插件,覺還不錯(cuò),讀了下他的源碼就直接在項(xiàng)目中使用了。
原理和使用說明
1、插件源碼主要基于angular directive來實(shí)現(xiàn)。
2、調(diào)用時(shí)關(guān)鍵地方是后臺(tái)請(qǐng)求處理函數(shù),也就是從后臺(tái)取數(shù)據(jù)。
3、插件有兩個(gè)關(guān)鍵參數(shù)currentPage、itemsPerPage,當(dāng)前頁(yè)碼和每頁(yè)的記錄數(shù)。
4、實(shí)現(xiàn)方法調(diào)用后我們需要根據(jù)每次點(diǎn)擊分頁(yè)插件頁(yè)碼時(shí)重新提交后臺(tái)來獲取相應(yīng)頁(yè)碼數(shù)據(jù)。 在調(diào)用的頁(yè)碼中我使用了$watch來監(jiān)控。 我初次使用時(shí)是把調(diào)用函數(shù)放在了插件的onchange中,結(jié)果發(fā)現(xiàn)每次都會(huì)觸發(fā)兩次后臺(tái)。這個(gè)地方需要注意。
5、我把請(qǐng)求后臺(tái)封裝成了Service層,然后在Controller里調(diào)用,也符合MVC思想。
效果圖

調(diào)用代碼
<div ng-app="DemoApp" ng-controller="DemoController">
<table class="table table-striped">
<thead>
<tr>
<td>ID</td>
<td>FirstName</td>
<td>LastName</td>
<td>Status</td>
<td>Address</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="emp in persons">
<td>{{emp.ID}}</td>
<td>{{emp.FirstName}}</td>
<td>{{emp.LastName}}</td>
<td>{{emp.Status}}</td>
<td>{{emp.Address}}</td>
</tr>
</tbody>
</table>
<tm-pagination conf="paginationConf"></tm-pagination>
</div>
<script type="text/javascript">
var app = angular.module('DemoApp', ['tm.pagination']);
app.controller('DemoController', ['$scope', 'BusinessService', function ($scope, BusinessService) {
var GetAllEmployee = function () {
var postData = {
pageIndex: $scope.paginationConf.currentPage,
pageSize: $scope.paginationConf.itemsPerPage
}
BusinessService.list(postData).success(function (response) {
$scope.paginationConf.totalItems = response.count;
$scope.persons = response.items;
});
}
//配置分頁(yè)基本參數(shù)
$scope.paginationConf = {
currentPage: 1,
itemsPerPage: 5
};
/***************************************************************
當(dāng)頁(yè)碼和頁(yè)面記錄數(shù)發(fā)生變化時(shí)監(jiān)控后臺(tái)查詢
如果把currentPage和itemsPerPage分開監(jiān)控的話則會(huì)觸發(fā)兩次后臺(tái)事件。
***************************************************************/
$scope.$watch('paginationConf.currentPage + paginationConf.itemsPerPage', GetAllEmployee);
}]);
//業(yè)務(wù)類
app.factory('BusinessService', ['$http', function ($http) {
var list = function (postData) {
return $http.post('/Employee/GetAllEmployee', postData);
}
return {
list: function (postData) {
return list(postData);
}
}
}]);
</script>
插件和Demo下載
http://yunpan.cn/cQEhnLrpnkniQ 訪問密碼 be74
以上就是AngularJS 實(shí)現(xiàn)分頁(yè)功能的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!
- angularjs表格分頁(yè)功能詳解
- angularjs實(shí)現(xiàn)的前端分頁(yè)控件示例
- ANGULARJS中使用JQUERY分頁(yè)控件
- AngularJS實(shí)現(xiàn)分頁(yè)顯示數(shù)據(jù)庫(kù)信息
- 基于Angularjs實(shí)現(xiàn)分頁(yè)功能
- Angularjs分頁(yè)查詢的實(shí)現(xiàn)
- 學(xué)習(xí)Angularjs分頁(yè)指令
- AngularJS 與Bootstrap實(shí)現(xiàn)表格分頁(yè)實(shí)例代碼
- 詳解angularjs結(jié)合pagination插件實(shí)現(xiàn)分頁(yè)功能
- AngularJs分頁(yè)插件使用詳解
相關(guān)文章
AngularJS實(shí)現(xiàn)使用路由切換視圖的方法
這篇文章主要介紹了AngularJS實(shí)現(xiàn)使用路由切換視圖的方法,結(jié)合學(xué)生信息管理系統(tǒng)為例分析了使用controllers.js控制器來切換視圖的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-01-01
AngularJS控制器controller正確的通信的方法
AngularJS中的controller是個(gè)函數(shù),用來向視圖的作用域($scope)添加額外的功能,我們用它來給作用域?qū)ο笤O(shè)置初始狀態(tài),并添加自定義行為2016-01-01
angular2+nodejs實(shí)現(xiàn)圖片上傳功能
這篇文章主要介紹了angular2+nodejs實(shí)現(xiàn)圖片上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Angular.JS利用ng-disabled屬性和ng-model實(shí)現(xiàn)禁用button效果
這篇文章主要介紹了Angular.JS利用ng-disabled屬性和ng-model實(shí)現(xiàn)禁用button效果的相關(guān)資料,文中給出了詳細(xì)的示例代碼,相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04
angular6.0使用教程之父組件通過url傳遞id給子組件的方法
這篇文章主要介紹了angular6.0使用教程之父組件通過url傳遞id給子組件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
AngularJS 入門教程之HTML DOM實(shí)例詳解
本文主要介紹AngularJS HTML DOM,這里幫大家整理了詳細(xì)的資料,并附實(shí)例代碼詳細(xì)講解,有需要的小伙伴可以參考下2016-07-07
AngularJS遞歸指令實(shí)現(xiàn)Tree View效果示例
這篇文章主要介紹了AngularJS遞歸指令實(shí)現(xiàn)Tree View效果,結(jié)合實(shí)例形式分析了AngularJS基于遞歸指令實(shí)現(xiàn)樹形結(jié)構(gòu)層次數(shù)據(jù)的相關(guān)操作步驟與注意事項(xiàng),需要的朋友可以參考下2016-11-11
AngularJS實(shí)現(xiàn)的自定義過濾器簡(jiǎn)單示例
這篇文章主要介紹了AngularJS實(shí)現(xiàn)的自定義過濾器,結(jié)合實(shí)例形式分析了AngularJS自定義過濾器的簡(jiǎn)單定義與使用操作技巧,需要的朋友可以參考下2019-02-02

