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

发布时间 - 2026-01-10 22:54:38    点击率:

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

效果:

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

依赖项:

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>

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


# angularjs实现分页  # angularjs中实现分页  # angularjs  # directive分页  # Vue.js分页组件实现:diVuePagination的使用详解  # vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法  # Reactjs实现通用分页组件的实例代码  # 原生js编写基于面向对象的分页组件  # Vue.js实现一个自定义分页组件vue-paginaiton  # 使用vue.js制作分页组件  # 基于Vue.js的表格分页组件  # js多功能分页组件layPage使用方法详解  # 分享一个自己写的简单的javascript分页组件  # JavaScript分页组件使用方法详解  # 分页  # 当前页  # 这是我  # 大可不必  # 该页  # 大家多多  # 输入框  # 闲来  # 并会  # 来不及了  # 可任意  # flip  # horizontal  # type  # text  # span  # input  # fa  # firstPage  # nofollow 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建个人网站并优化SEO?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  LinuxShell函数封装方法_脚本复用设计思路【教程】  如何在IIS7上新建站点并设置安全权限?  如何安全更换建站之星模板并保留数据?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Python自动化办公教程_ExcelWordPDF批量处理案例  青岛网站建设如何选择本地服务器?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  黑客入侵网站服务器的常见手法有哪些?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  企业网站制作这些问题要关注  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何实现建站之星域名转发设置?  如何破解联通资金短缺导致的基站建设难题?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  焦点电影公司作品,电影焦点结局是什么?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Laravel如何处理和验证JSON类型的数据库字段  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  如何快速上传自定义模板至建站之星?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  EditPlus中的正则表达式实战(6)  如何用wdcp快速搭建高效网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何创建自定义Artisan命令?(代码示例)  深圳网站制作培训,深圳哪些招聘网站比较好?  Laravel如何实现API速率限制?(Rate Limiting教程)  如何用AWS免费套餐快速搭建高效网站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  利用vue写todolist单页应用  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  手机网站制作与建设方案,手机网站如何建设?  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Bootstrap整体框架之CSS12栅格系统