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 相关文章推荐
JS 建立对象的方法
Apr 21 Javascript
自己编写的类似JS的trim方法
Oct 09 Javascript
script标签属性用type还是language
Jan 21 Javascript
javaScript中push函数用法实例分析
Jun 08 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 Javascript
第九篇Bootstrap导航菜单创建步骤详解
Jun 21 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
Oct 05 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
使用Vue动态生成form表单的实例代码
Apr 26 Javascript
Vue.js图片预览插件使用详解
Aug 27 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
js验证密码强度解析
Mar 18 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
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
GreyBox技术总结(转)
2010/11/23 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
javascript的几种写法总结
2016/09/30 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
常见的python正则用法实例讲解
2016/06/21 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python如何实现代码检查
2019/06/28 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python wordcloud库安装方法总结
2020/12/31 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
社团活动总结报告
2014/06/27 职场文书
同志主要表现材料
2014/08/21 职场文书
银行自荐信怎么写
2015/03/05 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
个人更名证明
2015/06/23 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电