最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Angularjs實(shí)現(xiàn)分頁功能

 更新時(shí)間:2016年05月30日 11:50:30   作者:garfieldzf  
這篇文章主要介紹了基于Angularjs實(shí)現(xiàn)分頁功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

前言

學(xué)習(xí)任何一門語言前肯定是有業(yè)務(wù)需求來驅(qū)動(dòng)你去學(xué)習(xí)它,當(dāng)然ng也不例外,在學(xué)習(xí)ng前我第一個(gè)想做的demo就是基于ng實(shí)現(xiàn)分頁,除去基本的計(jì)算思路外就是使用指令封裝成一個(gè)插件,在需要分頁的列表頁面內(nèi)直接引用。

插件

在封裝分頁插件時(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)前頁碼和每頁的記錄數(shù)。

4、實(shí)現(xiàn)方法調(diào)用后我們需要根據(jù)每次點(diǎn)擊分頁插件頁碼時(shí)重新提交后臺(tái)來獲取相應(yīng)頁碼數(shù)據(jù)。 在調(diào)用的頁碼中我使用了$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;
});
}
//配置分頁基本參數(shù)
$scope.paginationConf = {
currentPage: 1,
itemsPerPage: 5
};
/***************************************************************
當(dāng)頁碼和頁面記錄數(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>

以上內(nèi)容是小編給大家介紹的基于Angularjs實(shí)現(xiàn)分頁功能的實(shí)例代碼,希望對(duì)大家有所幫助!

相關(guān)文章

最新評(píng)論

临安市| 青川县| 宁强县| 乌苏市| 五常市| 丰顺县| 内丘县| 清水县| 南郑县| 阜南县| 和政县| 绿春县| 明水县| 明溪县| 南乐县| 霍山县| 沾化县| 屯门区| 任丘市| 宿迁市| 屯留县| 东至县| 桓台县| 蒙山县| 古丈县| 辽宁省| 宁远县| 平湖市| 罗山县| 宜昌市| 铅山县| 吉安市| 苗栗市| 台山市| 西宁市| 西乡县| 安塞县| 子长县| 临桂县| 南靖县| 乌拉特后旗|