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与C# Windows应用程序交互方法
Jun 29 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
Apr 23 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
js数组依据下标删除元素
Apr 14 Javascript
理解javascript闭包
Dec 15 Javascript
Angularjs 滚动加载更多数据
Mar 17 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
分享5个顶级的JavaScript Ajax组件库
Sep 16 Javascript
原生js实现五子棋游戏
May 28 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
NOT NULL 和NULL
2007/01/15 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
Python和php通信乱码问题解决方法
2014/04/15 Python
python继承和抽象类的实现方法
2015/01/14 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
Python 解析简单的XML数据
2020/07/24 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
土木工程专业推荐信
2014/02/19 职场文书
城南旧事观后感
2015/06/11 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
浅谈如何保证Mysql主从一致
2022/03/13 MySQL