AngularJS实现简单的分页功能

本篇文章由:http://xinpure.com/angularjs-simple-paging-functionality/

初学 AngularJS, 尝试着写一些小功能

代码逻辑写得略粗糙,仅仅只是实现了简单的分页功能,使用 AngularJS 尝尝鲜。

AngularJS Code (Users.js)

var Users = angular.module(‘Users‘, []);

Users.controller(‘UserList‘, function($scope, $http) {

    $scope.start        = 0;
    $scope.showLimit    = 10;
    $scope.count        = 0;

    /* Default Users List */
    $http.get(‘welcome/get_users‘ + ‘/‘ + $scope.start + ‘/‘ + $scope.showLimit).success(function(data){
        $scope.users = data;
    });

    /* Count Users */
    $http.get(‘welcome/count_users‘).success(function(data){
        $scope.count = data;
    });

    /* Pagination */
    $scope.page = function (start) {

        $scope.start = start < 0 ? 0 : start;
        if (start >= $scope.count)   $scope.start = $scope.count - $scope.showLimit;

        $http.get(‘welcome/get_users‘ + ‘/‘ + $scope.start + ‘/‘ + $scope.showLimit).success(function(data){
            $scope.users = data;
        });
    }

});

HTML Code

<head>
    <script src="angular.js"></script>
    <script src="Users.js"></script>
</head>
<body ng-controller="UserList">
<div id="container">
    <div id="user_list">
        Search: <input class="query" type="text" ng-model="query" placeholder="Query">
        <hr />
        <table>
            <thead>
                <th>ID</th>
                <th>User Name</th>
                <th>Phone Number</th>
                <th>Email</th>
            </thead>
            <tbody>
                <tr ng-repeat="user in users | filter:query">
                    <td>{{user.id}}</td>
                    <td>{{user.user_name}}</td>
                    <td>{{user.phone_number}}</td>
                    <td>{{user.email}}</td>
                </tr>
            </tbody>
        </table>
        <hr />
        <button ng-click="page(0)">First</button>
        <button ng-click="page(start - showLimit)">Prev</button>
        <button ng-click="page(start + showLimit)">Next</button>
        <button ng-click="page(count - showLimit)">Last</button>
        <input type="text" ng-model="gotoPage" />
        <button ng-click="page(gotoPage * showLimit)">GO</button>
    </div>
</div>
</body>

CSS Code (稍微美化了一下)

body {
    background-color: #fff;
    margin: 40px;
    font: 13px/20px normal Helvetica, Arial, sans-serif;
    color: #4F5155;
}
#user_list {
    margin: 15px;
}
#container {
    margin: 10px;
    border: 1px solid #D0D0D0;
    box-shadow: 0 0 8px #D0D0D0;
}
input {
    width: 40px;
    height: 19px;
    padding: 3px;
    color: #555;
    border-radius: 3px;
    border: 1px solid #ccc;
}
input.query {
    width: 100px;
}
button {
    padding: 5px;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 3px;
}
table {
    border-spacing: 0;
    border-collapse: collapse;
}
td,th  {
    border: 1px solid #ccc;
    text-align: center;
    padding: 5px;
}

主要逻辑代码都是写死的,不灵活,慢慢改进吧。

时间: 2024-12-09 07:29:57

AngularJS实现简单的分页功能的相关文章

简单封装分页功能pageView.js

分页是一个很简单,通用的功能.作为一个有经验的前端开发人员,有义务把代码中类似这样公共的基础性的东西抽象出来,一来是改善代码的整体质量,更重要的是为了将来做类似的功能或者类似的项目,能减少不必要的重复工作量.在实际项目中,尤其是网站类型的项目中,分页部分的设计总是个性化比较强,基本上都不会长的一样,所以可能之前抽象出来的东西,如果写的不够灵活的话,对这些个性化强的项目来说,可能直接应用的时候也得做些调整才行.本文尝试提供一个尽量满足这两方面要求的分页组件. 先介绍下写这个东西的背景:一直以来,我

MyBatis精通之路之分页功能的实现

MyBatis精通之路之分页功能的实现(数组分页.sql分页.拦截器,RowBounds分页) 原创 2017年04月27日 21:34:48 标签: mybatis / java / j2ee / mysql / 分页 4162 前言:学习hibernate & mybatis等持久层框架的时候,不外乎对数据库的增删改查操作.而使用最多的当是数据库的查找操作, 而当数据库数据过多时,符合查找条件的数据可能也会是很庞大的数据.往往在这个时候,我们都不会希望一次性的将所有的数据一起性读取出来,并且

jsp、js分页功能的简单总结

一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分页技术,有选择的加载某部分数据,在数据量较大的时候,分部分加载数据.显示数据,可以有效提高程序的性能,当然,单纯的js的分页技术并没有这种效果. 所以,分页技术是web技术中比较常用的技术,而下面讨论的主要是两种分页技术:一种是jsp的分页技术,其读取数据分批次读取,操作页数跳转的时候才加载相应页面

简单的beego分页功能代码

一个简单的beego分页小插件(源代码在最下面): 支持条件查询 支持参数保留 支持自定义css样式 支持表/视图 支持参数自定义 默认为pno 支持定义生成链接的个数 使用方式: 1)action中,引入包,然后如下使用: /** * 日志列表 */ func (this *LogController) List() { pno, _ := this.GetInt("pno") //获取当前请求页 var tlog []m.Tb_log var conditions string =

如何用angularjs制作一个完整的表格之二__表格分页功能

接上一次,这次主要介绍表格分页功能,由于项目需要这个案例是关于前端分页的方式,现在很少会这么用了,但如有需要可以参考其中的思路 html: 1.通过UL来展示页标,其中每个页标的li是通过异步加载从获取到不同的表格数据来动态生成的. <div class="pagination"> <ul style="float:right"> <li id="previous"><a href=""

Yii2.0实用功能技巧解密之——分页功能

Yii中的分页功能主要由yii\web: Linkable接口.yii\widgets: LinkPager类和yii\data: Pagination类三个组成. yii\data: Pagination 主要功能是对分页中的参数进行设置,如当前页.每页大小.总页数,总记录数等. yii\widgets: LinkPager 主要是根据yii\data: Pagination类所提供的参数生成前台页面的分页html代码. 使用:先在action里面生成分页对象,然后在前台的LinkPager中

网页分页功能的实现

最近在学习JavaWeb的时候,用到了分页功能,现在进行一个记录,以备不时之需 第一步:先完成分页Bean的编写. 就是对当前页数,每页显示的记录数,总记录数,总页数,分页显示的信息进行封装.作为通用的分页功能的实现,这里用到了泛型 import java.util.List; /** * 分页封装 * */ public class PageBean<T> { private int currPage;//当前页数 private int pageSize;//每页显示记录数 private

用angularjs做简单的tab切换

用angularjs做简单的tab切换: 页面部分 <div> <div id="tabs" ng-controller="TabsCtrl"> <ul> <li ng-repeat="tab in tabs" ng-class="{active:isActiveTab(tab.url)}" ng-click="onClickTab(tab)">{{tab.t

dedecms独立模型分页功能的完善

dedecms其实在架构方面没什么问题,但是估计里面有些功能是新手做的吧,有很多待完善的地方,比如分页功能,从代码可以直接看出当时的负责人有敷衍了事的心里. dede的分页如果有两个页码显示的话,无法显示出总的文章数,举个例子: 在普通文章模型下面,列表的分页是这样的: 但是在独立模型中就成了这样了 最后面的共*页*条的信息不见了,相信遇到这个问题的同学首先想到的是自己哪里用错了,其实不是,dede独立模型这里的代码是偷工减料了的.处理独立模型列表的代码在arc.sglistview.class