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 相关文章推荐
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 Javascript
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
JavaScript中清空数组的三种方法分享
Apr 07 Javascript
将文本输入框内容加入表中的js代码
Aug 18 Javascript
input禁止键盘及中文输入,但可以点击
Feb 13 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
jquery实现简单Tab切换菜单效果
Jul 17 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
javaScript基础详解
Jan 19 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 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 crc32()函数讲解
2019/02/14 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
jquery ajax执行后台方法
2010/03/18 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
详解JavaScript函数
2015/12/01 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
给Python入门者的一些编程建议
2015/06/15 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
单位工作证明范文
2014/09/14 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
毕业实习感受与体会
2015/05/26 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python
总结一些Java常用的加密算法
2021/06/11 Java/Android
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js