angularjs中分页的应用

应angular的spa项目需要,现后台管理系统中需要用到分页,于是就找到了这个基于bootstrap的分页,封装性很好,用起来也非常方便,这里是模拟的数据库数据,实际中只需要将模拟数据换成接口调用返回的数据即可,并且可以实现按页、按数量的按需加载,也可以全部加载,记得引入ui.bootstrap就可以了

效果如图:

下面是完整可直接运行的代码:

<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
    <meta charset="UTF-8">
    <title>分页</title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>

    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
    <script src="http://cdn.bootcss.com/angular-ui-bootstrap/2.2.0/ui-bootstrap-tpls.js"></script>
    <style>

    </style>
    <script>
        angular.module(‘myApp‘,[‘ui.bootstrap‘]).controller("paginationCtrl",function($scope,$log){
            var vm=$scope;
            $scope.commenList=[
                {index:‘1‘,title:"标题1",content:‘content 1‘},
                {index:‘2‘,title:"标题2",content:‘content 2‘},
                {index:‘3‘,title:"标题3",content:‘content 3‘},
                {index:‘4‘,title:"标题4",content:‘content 4‘},
                {index:‘5‘,title:"标题5",content:‘content 5‘},
                {index:‘6‘,title:"标题6",content:‘content 6‘},
                {index:‘7‘,title:"标题7",content:‘content 7‘},
                {index:‘8‘,title:"标题8",content:‘content 8‘},
                {index:‘9‘,title:"标题9",content:‘content 9‘},
                {index:‘10‘,title:"标题10",content:‘content 10‘},
                {index:‘11‘,title:"标题11",content:‘content 11‘},
                {index:‘12‘,title:"标题12",content:‘content 12‘},
                {index:‘13‘,title:"标题13",content:‘content 13‘},
                {index:‘14‘,title:"标题14",content:‘content 14‘},
                {index:‘15‘,title:"标题15",content:‘content 15‘},
                {index:‘16‘,title:"标题16",content:‘content 16‘}
            ];
            $scope.sec=[{id:1,name:"1"},{id:2,name:"2"},{id:4,name:"4"}];
            $scope.totalItems=vm.commenList.length;
            $scope.currentPage=3;//当前页面数,设置默认进入的当前页面
            $scope.pageSize=5;//改变数值,每个页面拉的数据数目就会改变
            $scope.pageNum=Math.ceil($scope.totalItems/$scope.pageSize);//当前页面数
            $scope.allItem=[];
            for(var i=0;i<$scope.totalItems;i+=$scope.pageSize){
                $scope.allItem.push($scope.commenList.slice(i,i+$scope.pageSize));
            }
            var getlist=function(){/*第一次进入页面获取数据,参数*/
                var page= $scope.currentPage=1;
                var size=$scope.pageSize=5;
                $http(page,size)/*请求数据*/
            }
            $scope.pageChanged=function(){/*页码变化请求数据*/
                console.log("$scope.page",$scope.currentPage,$scope.pageSize);/*  页码变化执行http请求   */
                var page= $scope.currentPage;
                var size=$scope.pageSize;
                $http(page,size)/*请求数据*/
            }
        })
    </script>
</head>
<body>
<div ng-controller="paginationCtrl">
    <div class="table">
        <table class="table table-striped">
            <thead>
            <tr>
                <th>序号</th>
                <th>title</th>
                <th>内容</th>
            </tr>
            </thead>
            <tbody>
            <tr ng-repeat="item in allItem[currentPage-1]">
                <td>{{item.index}}</td>
                <td>{{item.title}}</td>
                <td>{{item.content}}</td>
            </tr>
            </tbody>
        </table>
    </div>
    <div class="page">
        <ul uib-pagination
            boundary-links="true"
            class="pagination-lg"
            total-items="totalItems"
            ng-model="currentPage"
            items-per-page="pageSize"
            previous-text="&lsaquo;"
            next-text="&rsaquo;"
            first-text="&laquo;"
            last-text="&raquo;"
            max-size=‘3‘
            boundary-link-numbers="true"
            ng-change=‘pageChanged()‘
                >
        </ul>
    </div>
</div>
</body>
</html>
时间: 2024-10-13 16:47:59

angularjs中分页的应用的相关文章

基于angularJS的分页功能

先看分页效果图 是基于bootstrap的基本分页效果,样式可以先去查看boostrap文档熟悉. 在以angularJS中,像这种公共组件一般(也应该)写到公共directive中,下面可以下项目中怎么实现的. ①. 公共组件 pageDirective.js define(['angular'], function(angular) { //依赖angularJS,这里用到了requireJS,未使用者自行更改 var directives = angular.module("app.dir

AngularJS入门 &amp; 分页 &amp; CRUD示例

一.AngularJS 简介 ? AngularJS  诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.依赖注入等等. 其中MVC理解如下: Model : 数据,其实就是 angular变量($scope.xx) View : 数据的呈现 Controller : 操作数据,就是function,数据的crud 二.A

angularJs中关于ng-class的三种使用方式说明

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key/value 下面简单说下这三种: 第一种:通过数据的双向绑定 实现方式: function changeClass(){   $scope.className = "change2"; } <div clas

AngularJs中的directives(指令)

一.指令的职责   指令的职责是修改DOM结构,并将作用域和DOM连接起来.即指令既要操作DOM,将作用域内的数据绑定到DOM节点上,又要为DOM绑定事件调用作用域内的对应的方法. 二.创建自定义指令 调用自定义指令的4种方式:元素.属性.样式类.注释. 常用的是前两种,实例如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title>

黄聪:AngularJS中的$resource使用与Restful资源交互(转)

原文:http://blog.csdn.net/he90227/article/details/50525836 1.AngularJS中的 $resource 这个服务可以创建一个资源对象,我们可以用它非常方便地同支持RESTful的服务端数据源进行交互,当同支持RESTful的数据模型一起工作时,它就派上用场了.      REST是Representational State Transfer(表征状态转移)的缩写,是服务器用来智能化地提供数据服务的一种方式 1)我们首先需要引入ng-Re

Spring Boot+AngularJS中因为跨域导致Session丢失

http://blog.csdn.net/dalangzhonghangxing/article/details/52446821 如果还在为跨域问题烦恼,请查看博主的 解决angular+spring boot的跨域问题 那篇文章. 博主在项目开发过程中,遇到了由于跨域而导致的Session丢失问题,非常的恶心,但是经过在网上查阅各种资料,发现解决方法十分简单. 在我们每一次的数据请求中,浏览器都会向后台发送一个JSession,后台会根据这个值自动查找Id为JSession的那个sessio

后端接收不到AngularJs中$http.post发送的数据的问题

1.问题: 后端接收不到AngularJs中$http.post发送的数据,总是显示为null 示例代码: $http.post(/admin/KeyValue/GetListByPage, { pageindex: 1, pagesize: 8 }) .success(function(){ alert("Mr靖"); }); 代码没有错,但是在后台却接收不到数据,这是为什么呢? 用火狐监控:参数是JSON格式 用谷歌监控:传参方式是request payload 可以发现传参方式是

Angularjs中的事件广播-浅谈$broadcast,$emit,$on

Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信 介绍: $broadcast的作用是将事件从父级作用域传播至子级作用域,包括自己.格式如下:$broadcast(eventName,args) $emit的作用是将事件从子级作用域传播至父级作用域,包括自己,直至根作用域.格式如下:$emit(eventName,args) $on用于在作用域中监控从子级或父级作用域中传播的事件以及相应的数据.格式如下:$on(event,dat

AngularJs中,如何在父元素中调用子元素为自定义Directive中定义的函数?

最近一段时间准备使用AngularJs中的自定义Directive重构一下代码. 在这里说明一下,把自定义控件封装成Directive并不一定是要复用,而是要让代码结构更加清晰.就好像你将一个长方法拆分成多个独立的小方法,也未必要复用它们一样.职责独立等一票好处,会让后期维护更加轻松. 在重构的过程中,我遇到了这样一个问题,先上图: 图一: 这就是我要重构的界面,由于之前时间紧,将这三个Filter和两个button都写在了一个页面中.当时我已经预感到,如果将这里面的状态都写到一个scope上,