angularjs表格ng-table使用备忘录


Posted in Javascript onMarch 09, 2016

项目中用到angularjs的表格ng-table,功能相当强大,像搜索、排序、checkbox、分页、每页表格显示数目等都有。API,demo什么的也只能参考官网了。这里做个备忘,哪天肯定还会用到。

HTML:

<!DOCTYPE html>
<html>
<meta charset="utf-8"/>
<head>
  <script data-require="angular.js@*" data-semver="1.2.0-rc3-nonmin" src="angular.js"></script>
  <script data-require="ng-table@*" data-semver="0.3.0" src="ngTable.js"></script>
  
  <link data-require="ng-table@*" data-semver="0.3.0" rel="stylesheet" href="http://bazalt-cms.com/assets/ng-table/0.3.2/ng-table.css" />
  <link data-require="bootstrap-css@*" data-semver="3.0.0" rel="stylesheet" href="bootstrap.min.css" />
  
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>

<body ng-app="main" ng-controller="DemoCtrl">
  <p><strong>Page:</strong> {{tableParams.page()}}
  <p><strong>Count per page:</strong> {{tableParams.count()}}

<p>Filter: <input class="form-control" type="text" ng-model="filter.$" /></p>

  <table ng-table="tableParams" show-filter="true" class="table">
    <tr ng-repeat="user in $data" ng-class="{ 'emphasis': user.money > 500 }">
      <td width="30" style="text-align: left" header="'ng-table/headers/checkbox.html'">
        <input type="checkbox" ng-model="checkboxes.items[user.organizationId]" />
      </td>
      <td data-title="'编号'" sortable="'organizationId'">
        {{user.organizationId}}
      </td>
      <td data-title="'名称'" sortable="'name'">
        {{user.name}}
      </td>
    </tr>
  </table>
  <script type="text/ng-template" id="ng-table/headers/checkbox.html">
    <input type="checkbox" ng-model="checkboxes.checked" id="select_all" name="filter-checkbox" value="" />
  </script>

</body>
</html>

js:

var app = angular.module('main', ['ngTable']).
controller('DemoCtrl', function($scope, ngTableParams, NameService) {

  var data = NameService.data;

  $scope.tableParams = new ngTableParams(
   {
    page: 1,      // show first page
    count: 10,      // count per page
    sorting: {name:'asc'}
   },
   {
    total: 0, // length of data
    getData: function($defer, params) {
     NameService.getData($defer,params,$scope.filter);
    }
  });
  
  $scope.$watch("filter.$", function () {
    $scope.tableParams.reload();
  });
  
});

app.service("NameService", function($http, $filter){
 
 function filterData(data, filter){
  return $filter('filter')(data, filter);
 }
 
 function orderData(data, params){
  return params.sorting() ? $filter('orderBy')(data, params.orderBy()) : filteredData;
 }
 
 function sliceData(data, params){
  return data.slice((params.page() - 1) * params.count(), params.page() * params.count())
 }
 
 function transformData(data,filter,params){
  return sliceData( orderData( filterData(data,filter), params ), params);
 }
 
 var service = {
  cachedData:[],
  getData:function($defer, params, filter){
   if(service.cachedData.length>0){
    console.log("using cached data")
    var filteredData = filterData(service.cachedData,filter);
    var transformedData = sliceData(orderData(filteredData,params),params);
    params.total(filteredData.length)
    $defer.resolve(transformedData);
   }
   else{
    console.log("fetching data")
    $http.get("data.json").success(function(resp)
    {
     angular.copy(resp,service.cachedData)
     params.total(resp.length)
     var filteredData = $filter('filter')(resp, filter);
     var transformedData = transformData(resp,filter,params)
     
     $defer.resolve(transformedData);
    }); 
   }
   
  }
 };
 return service; 
});

json数据:

[{
      "hidden": 1,
      "launchImage": "2015_4_9_12_bb7e0a446ed74ae7ad0a3554a54183bc_1298477763",
      "name": "张三",
      "orgId": 1498031949070997504,
      "organizationId": "1498031949070997504"
    }, {
      "hidden": 1,
      "launchImage": "http://7s1rmc.com1.z0.glb.clouddn.com/2015_4_9_12_0ab5b02cf1df4ac49a7376b820816307_2127491219|39e202124ac90ec531009b0edbbbe0ba",
      "name": "李四",
      "orgId": 1498046360909250560,
      "organizationId": "1498046360909250560"
    }]

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

Javascript 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
JavaScript Array Flatten 与递归使用介绍
Oct 30 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
jQuery提交多个表单的小技巧
Jul 27 Javascript
js使用html()或text()方法获取设置p标签的显示的值
Aug 01 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
javascript中cookie对象用法实例分析
Jan 30 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
Vue的MVVM实现方法
Aug 16 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
js正则相关知识点专题
May 10 Javascript
详解AngularJS控制器的使用
Mar 09 #Javascript
JQuery Mobile实现导航栏和页脚
Mar 09 #Javascript
javascript基本算法汇总
Mar 09 #Javascript
javascript时间排序算法实现活动秒杀倒计时效果
Jan 28 #Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 #Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
Mar 09 #Javascript
jquery实现文本框textarea自适应高度
Mar 09 #Javascript
You might like
php 字符串替换的方法
2012/01/10 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php获取错误信息的方法
2015/07/17 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php微信开发之百度天气预报
2016/11/18 PHP
asp 取文本框名称代码
2008/12/02 Javascript
javascript中的new使用
2010/03/20 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
python自动格式化json文件的方法
2015/03/11 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
jupyter notebook 多行输出实例
2020/04/09 Python
Python的历史与优缺点整理
2020/05/26 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
关于随地扔垃圾的检讨书
2014/09/30 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
预备党员入党感言
2015/08/01 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
Go 语言中 20 个占位符的整理
2021/10/16 Golang