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 相关文章推荐
jquery遍历input取得input的name
Apr 27 Javascript
Date对象格式化函数代码
Jul 17 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
Javascript的表单验证-提交表单
Mar 18 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
js获取文件里面的所有文件名(实例)
Oct 17 Javascript
vue中实现移动端的scroll滚动方法
Mar 03 Javascript
Vue数据监听方法watch的使用
Mar 28 Javascript
JS实现的简单分页功能示例
Aug 23 Javascript
angularJS自定义directive之带参方法传递详解
Oct 09 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 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执行速度全攻略(上)
2006/10/09 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
django使用html模板减少代码代码解析
2017/12/12 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
农村葬礼主持词
2014/03/31 职场文书
大学生社会实践评语
2014/04/25 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
优秀毕业生求职信
2014/06/05 职场文书
公司授权委托书范文
2014/08/02 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
老公保证书怎么写
2015/02/26 职场文书
民事起诉状范文
2015/05/19 职场文书
党小组评议意见
2015/06/02 职场文书
筑梦中国心得体会
2016/01/18 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
k-means & DBSCAN 总结
2021/04/27 Python