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 相关文章推荐
js左侧多级菜单动态的解决方案
Feb 01 Javascript
全面解析Bootstrap排版使用方法(标题)
Nov 30 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
JavaScript中点击事件的写法
Jun 28 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
Angular17之Angular自定义指令详解
Jan 21 Javascript
解决Mac node版本升级失败的问题
May 16 Javascript
详解JavaScript中关于this指向的4种情况
Apr 18 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
用Node写一条配置环境的指令
Nov 14 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伪静态页面函数附使用方法
2008/06/20 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Django组件cookie与session的具体使用
2019/06/05 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
劲霸男装广告词改编版
2014/03/21 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
行政前台岗位职责
2015/04/16 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
退休欢送会致辞
2015/07/31 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
Nginx的基本概念和原理
2022/03/21 Servers
Win11更新失败并提示0xc1900101
2022/04/19 数码科技