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 相关文章推荐
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 Javascript
javascript concat数组累加 示例
Sep 03 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 Javascript
JS重要知识点小结
Nov 06 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
jQuery实现动态添加和删除一个div
Aug 12 Javascript
深入学习Bootstrap表单
Dec 13 Javascript
Node.js中的http请求客户端示例(request client)
May 04 Javascript
Bootstrap与Angularjs的模态框实例代码
Aug 03 Javascript
微信小程序后端无法保持session的原因及解决办法问题
Mar 20 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
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
杏林同学录(二)
2006/10/09 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
php json_encode奇怪问题说明
2011/09/27 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
详解Python命令行解析工具Argparse
2016/04/20 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
python中字符串内置函数的用法总结
2018/09/13 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
python db类用法说明
2020/07/07 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
自学考试自我鉴定范文
2013/09/26 职场文书
机关财务管理制度
2014/01/17 职场文书
自荐信的基本格式
2014/02/22 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
培训通知书模板
2015/04/17 职场文书
三国演义读书笔记
2015/06/25 职场文书
python turtle绘图命令及案例
2021/11/23 Python