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 相关文章推荐
IE6不能修改NAME问题的解决方法
Sep 03 Javascript
JavaScript实现的图像模糊算法代码分享
Apr 22 Javascript
javascript时间函数大全
Jun 30 Javascript
jQuery实用函数用法总结
Aug 29 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
prototype框架中美元符号$用法分析
Jan 22 Javascript
js实现人民币大写金额形式转换
Apr 27 Javascript
JQuery的Pager分页器实现代码
May 03 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
Jul 25 Javascript
JS中this的指向以及call、apply的作用
May 06 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
JavaScript中AOP的实现与应用
May 06 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
解析php入库和出库
2013/06/25 PHP
php报错502badgateway解决方法
2019/10/11 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
Python文件操作类操作实例详解
2014/07/11 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
生物科学专业个人求职信范文
2013/12/05 职场文书
班主任寄语大全
2014/04/04 职场文书
协会周年庆活动方案
2014/08/26 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers