国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 09:51:22
字體:
供稿:網(wǎng)友

前言

學(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)鍵地方是后臺請求處理函數(shù),也就是從后臺取數(shù)據(jù)。

3、插件有兩個(gè)關(guān)鍵參數(shù)currentPage、itemsPerPage,當(dāng)前頁碼和每頁的記錄數(shù)。

4、實(shí)現(xiàn)方法調(diào)用后我們需要根據(jù)每次點(diǎn)擊分頁插件頁碼時(shí)重新提交后臺來獲取相應(yīng)頁碼數(shù)據(jù)。 在調(diào)用的頁碼中我使用了$watch來監(jiān)控。 我初次使用時(shí)是把調(diào)用函數(shù)放在了插件的onchange中,結(jié)果發(fā)現(xiàn)每次都會(huì)觸發(fā)兩次后臺。這個(gè)地方需要注意。

5、我把請求后臺封裝成了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)控后臺查詢?nèi)绻裞urrentPage和itemsPerPage分開監(jiān)控的話則會(huì)觸發(fā)兩次后臺事件。***************************************************************/$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í)例代碼,希望對大家有所幫助!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 河池市| 高淳县| 雷州市| 镇原县| 读书| 定远县| 宣威市| 苏尼特左旗| 揭西县| 南溪县| 建德市| 马山县| 柳州市| 思南县| 永宁县| 新宁县| 义马市| 沂南县| 邳州市| 江达县| 米易县| 临沧市| 邵武市| 托克托县| 泾川县| 固镇县| 武冈市| 湘西| 方正县| 资阳市| 门头沟区| 内丘县| 蛟河市| 佛学| 花莲县| 尼玛县| 阜城县| 本溪市| 五大连池市| 宜宾市| 津市市|