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 相关文章推荐
JavaScript Event学习第二章 Event浏览器兼容性
Feb 07 Javascript
Javascript string 扩展库代码
Apr 09 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
JS获取节点的兄弟,父级,子级元素的方法
Jan 09 Javascript
详解AngularJS中的表达式使用
Jun 16 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
Nov 25 Javascript
jQuery插件autocomplete使用详解
Feb 04 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
详解在React里使用&quot;Vuex&quot;
Apr 02 Javascript
Vue实现Layui的集成方法步骤
Apr 10 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做客户验证时的注意事项
2006/10/09 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
php四种定界符详解
2017/02/16 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
angularjs 缓存的使用详解
2018/03/19 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
python画图的函数用法以及技巧
2019/06/28 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
学子宴答谢词
2014/01/25 职场文书
关于运动会的稿件
2014/02/02 职场文书
护士2014年终工作总结
2014/11/11 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
logback如何自定义日志存储
2021/08/30 Java/Android