Angular表格神器ui-grid应用详解


Posted in Javascript onSeptember 29, 2017

本文实例为大家分享了Angular表格神器ui-grid的具体代码,供大家参考,具体内容如下

HTML:  (代码仅用于解释得更清楚,并未完全展示)

<!doctype html>
<html ng-app="app">
 <head>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-touch.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-animate.js"></script>
  <script src="http://ui-grid.info/docs/grunt-scripts/csv.js"></script>
  <script src="http://ui-grid.info/docs/grunt-scripts/pdfmake.js"></script>
  <script src="http://ui-grid.info/docs/grunt-scripts/vfs_fonts.js"></script>
  <script src="/release/ui-grid.js"></script>
  <script src="/release/ui-grid.css"></script>
  <script src="app.js"></script>
 </head>
 <body>
  <div ng-controller="MainCtrl">
   <div id="user-grid" ui-grid="gridOptions" class="user-grid" ui-grid-resize-columns></div></div>
  </div>
 </body>
</html>

ui-grid-resize-columns:使列可以改变宽度,像这样:

Angular表格神器ui-grid应用详解

 Jvar app = angular.module('app', ['ngTouch', 'ui.grid']);

app.controller('MainCtrl', ['$scope', function ($scope) {

i18nService.setCurrentLang("zh-cn");
    $scope.gridOptions = {
      enableSorting: true,
      columnDefs: [
        {field: 'accountName', displayName:'手机号', width: 200},
        {field: 'userName', displayName:'用户名', width: 100},
        {field: 'unitName', displayName:'单位', width: 300},
        {
          field: 'createTime', displayName: '注册时间', width: 200,
          cellTemplate: '<div class="ui-grid-cell-contents"><span ng-bind="grid.appScope.rDateFormat(row.entity.createTime)"></span></div>'
        },
        {
          field: 'roleList', displayName: '类型', width: 200,
          cellTemplate: '<div class="ui-grid-cell-contents"><span ng-repeat="item in row.entity.roleList" style="margin-right:5px;">{{item.roleName}}</span></div>'
        },
        {
          field: 'accountId', displayName: '详细信息', width: 200,
          cellTemplate: '<div class="ui-grid-cell-contents">
                   <button type="button" 
                       ng-click="grid.appScope.showAccountDetail(row.entity.roleList, row.entity.accountId)"
                       style="line-height: normal" class="btn-primary btn">查看详情</button></div>'
        }
      ]
    }; 
    $scope.gridOptions.data = [
     {
       'accountName':'15555555555',
       'userName':'浮生若梦',
       'unitName':'无',
       'createTime':1506661676435,
       'roleList':[{roleName:'前端','roleId':2},{roleName:'后端','roleId':3}],
       'accountId':201
     },
     {
       'accountName':'15555555555',
       'userName':'浮生若梦',
       'unitName':'无',
       'createTime':1506661676435,
       'roleList':[{roleName:'前端','roleId':2},{roleName:'后端','roleId':3}],
       'accountId':201
     }
    ]

}]);

效果如下:

Angular表格神器ui-grid应用详解

ui-grid使用中文:i18nService.setCurrentLang("zh-cn");

设置ui-grid格式:通过html中的ui-grid='gridOptions' (gridOptions可以自己定义) 再通过$scope.gridOptions来绑定

在上面的代码中:

enableSorting:定义是否排序
对于列的定义columnDefs中:
field就是表格数据$scope.gridOptions.data中的字段,
displayName就是显示在表格中的显示的列项名,如果没有定义,那么显示的就是field的名称

ui-grid怎么单独定义一个单元格的样式?比如做成一个按钮。

可以使用cellTemplate属性,但是需要注意的是,单元格定义的html中如果要绑定函数,并不能像angular常规的来绑定,需要在绑定的函数前加上“grid.appScope”,比如“grid.appScope.func()”
ui-grid如果要将某行的某个数据传入函数中需要使用这样的形式:“row.entity.createTime”,creatTime就是你要传入的参数的名称(对应于“field”)
表格的数据可以通过请求后端接口来获取,赋值给$scope.gridOptions.data,需要注意数据格式是否符合要求,否则就要先处理好。

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

Javascript 相关文章推荐
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
Dec 11 Javascript
vue中如何去掉空格的方法实现
Nov 09 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
Angular6项目打包优化的实现方法
Dec 15 Javascript
JS如何定义用字符串拼接的变量
Jul 11 Javascript
详解JavaScript 中的批处理和缓存
Nov 19 Javascript
javascript 缓冲运动框架的实现
Sep 29 #Javascript
使用cropper.js裁剪头像的实例代码
Sep 29 #Javascript
详解让sublime text3支持Vue语法高亮显示的示例
Sep 29 #Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 #Javascript
微信小程序之选项卡的实现方法
Sep 29 #Javascript
vue-cli的eslint相关用法
Sep 29 #Javascript
JavaScript数组的5种迭代方法
Sep 29 #Javascript
You might like
关于php循环跳出的问题
2013/07/01 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
Python深入学习之闭包
2014/08/31 Python
python求pi的方法
2014/10/08 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
深入Python函数编程的一些特性
2015/04/13 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
精选干货:Java精选笔试题附答案
2014/01/18 面试题
三查三看党性分析材料
2014/02/18 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
文艺晚会开场白
2015/05/29 职场文书
安全教育第一课观后感
2015/06/17 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
Java输出Hello World完美过程解析
2021/06/13 Java/Android