Angular表格神器ui-grid应用详解

发布时间 - 2026-01-11 03:29:10    点击率:

本文实例为大家分享了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:使列可以改变宽度,像这样:

 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
     }
    ]

}]);

效果如下:


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,需要注意数据格式是否符合要求,否则就要先处理好。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Angular  # 表格  # ui  # grid  # angularjs实现table表格td单元格单击变输入框/可编辑状态示例  # AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)  # AngularJS中table表格基本操作示例  # Angular将填入表单的数据渲染到表格的方法  # AngularJS实现表格的增删改查(仅限前端)  # 基于angular实现树形二级表格  # 绑定  # 浮生若梦  # 后端  # 需要注意  # 单元格  # 的是  # 注册时间  # 你要  # 可以通过  # 如果没有  # 可以使用  # 要将  # 在上面  # 要先  # 大家分享  # 具体内容  # 能像  # 大家多多  # 查看详情  # 是否符合 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 简历没回改:利用AI润色让你的文字更专业  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何在云主机上快速搭建多站点网站?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何做网站制作流程,*游戏网站怎么搭建?  Python进程池调度策略_任务分发说明【指导】  如何在IIS7上新建站点并设置安全权限?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  详解阿里云nginx服务器多站点的配置  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Java解压缩zip - 解压缩多个文件或文件夹实例  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何基于云服务器快速搭建个人网站?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Java类加载基本过程详细介绍  教学论文网站制作软件有哪些,写论文用什么软件 ?  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  BootStrap整体框架之基础布局组件  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何在阿里云域名上完成建站全流程?  js代码实现下拉菜单【推荐】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何快速搭建二级域名独立网站?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Swift开发中switch语句值绑定模式  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何快速重置建站主机并恢复默认配置?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何快速查询网站的真实建站时间?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Thinkphp 中 distinct 的用法解析  Laravel如何自定义错误页面(404, 500)?(代码示例)  如何在VPS电脑上快速搭建网站?  再谈Python中的字符串与字符编码(推荐)  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧