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 相关文章推荐
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
Jun 25 Javascript
div层的移动及性能优化
Nov 16 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
Feb 08 Javascript
常见的原始JS选择器使用方法总结
Apr 09 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
js 轮播效果实例分享
Dec 28 Javascript
详解如何构建一个Angular6的第三方npm包
Sep 07 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 Javascript
对Layer UI 模块化的用法详解
Sep 26 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
一个用于网络的工具函数库
2006/10/09 PHP
php SQL防注入代码集合
2008/04/25 PHP
php中this关键字用法分析
2016/12/07 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
浅谈php://filter的妙用
2019/03/05 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
python:socket传输大文件示例
2017/01/18 Python
Python调用C++程序的方法详解
2017/01/24 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Python if语句知识点用法总结
2018/06/10 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
数控专业推荐信范文
2013/12/02 职场文书
银行实习生的自我评价
2013/12/09 职场文书
《王二小》教学反思
2014/02/27 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python