angularjs使用directive实现分页组件的示例


Posted in Javascript onFebruary 07, 2017

闲来没事,分享下项目中自己写的分页组件。来不及了,直接上车。

效果:

angularjs使用directive实现分页组件的示例

angularjs使用directive实现分页组件的示例

angularjs使用directive实现分页组件的示例

输入框可任意输入,并会自动提交到该页

依赖项:

fontawesome,bootstrap

html:

<ul class="page clearfix">
  <li ng-hide="currentPage <= 1">
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" firstPage()">
      <i class="fa fa-step-backward"></i>
    </a>
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" prePage()">
      <i class="fa fa-play fa-flip-horizontal"></i>
    </a>
  </li>
  <li>
    <span>页码</span>
    <input type="text" ng-model="currentPage">/
    <span ng-bind="totalPage"></span>
  </li>
  <li ng-hide="currentPage >= totalPage">
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" nextPage()">
      <i class="fa fa-play"></i>
    </a>
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" lastPage()">
      <i class="fa fa-step-forward"></i>
    </a>
  </li>
</ul>

css:

/* 分页 */
.page {
  margin: 15px 0;
  padding: 0;
  float: right;
}
.page li {
  list-style: none;
  float: left;
  height: 30px;
  line-height: 30px;
}
.page li input {
  padding: 3px 5px;
  height: 100%;
  width: 50px;
  border: none;
  background-color: #EAEEF1;
  text-align: center;
  margin-right: 10px;
}
.page li span {
  margin-right: 15px;
}
.page li a {
  text-decoration: none;
  outline: none;
  margin-right: 15px;
}

directive:

App.directive('paging', function() { // 分页
  return {
    restrict: 'A',
    replace: true,
    scope: {
      totalPage: '=totalPage',
      currentPage: '=currentPage',
      getData: '&getData'
    },
    templateUrl: 'app/views/partials/paging.html',
    controller: function($scope) {

      $scope.firstPage = function() { $scope.currentPage = 1; }
      $scope.lastPage = function() { $scope.currentPage = $scope.totalPage; }
      $scope.prePage = function() { $scope.currentPage--; }
      $scope.nextPage = function() { $scope.currentPage++; }

      $scope.$watch('currentPage', function(newVal, oldVal) {
        if(newVal != oldVal && newVal) $scope.getData();
      })
    }
  };
});

参数:

  • totalPage: 总页数,
  • currentPage: 当前页,
  • getData: 点击分页所触发的函数

用法:

controller:

$scope.current_page = 1; // 当前页
$scope.getData = function() {
  $scope.param.page = $scope.current_page;
  ConnectApi.start('post', 'index/student/getschoolclasslist', $scope.param).then(function(response) { // 这个ConnectApi 你大可不必关心,这是我封装的http函数
    var data = ConnectApi.data({ res: response, _index: index });
    $scope.data = data.data;
    $scope.totalpage = data.data.total_page; // 服务器端返回的总页数
  }
}
$scope.getData(); // 获取数据的函数

html:

<div paging total-page="totalpage" current-page="current_page" get-data="getData()"></div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
破解Session cookie的方法
Jul 28 Javascript
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
Jquery焦点图实例代码
Nov 25 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
node.js文件上传处理示例
Oct 27 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
vue中echarts3.0自适应的方法
Feb 26 Javascript
微信小程序之裁剪图片成圆形的实现代码
Oct 11 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
微信小程序 调用远程接口 给全局数组赋值代码实例
Aug 13 Javascript
Bootstrap下拉菜单样式
Feb 07 #Javascript
基于JavaScript实现购物车功能
Feb 07 #Javascript
js实现类bootstrap模态框动画
Feb 07 #Javascript
canvas实现探照灯效果
Feb 07 #Javascript
javascript数据类型详解
Feb 07 #Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 #Javascript
vuejs指令详解
Feb 07 #Javascript
You might like
对Session和Cookie的区分与解释
2007/03/16 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
php中json_encode中文编码问题分析
2011/09/13 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php验证手机号码
2015/11/11 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
详谈js的变量提升以及使用方法
2018/10/06 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
python中os模块详解
2016/10/14 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
房地产融资计划书
2014/01/10 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
Python Pandas解析读写 CSV 文件
2022/04/11 Python