欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-20 22:16:59
本文实例为大家分享了angular表格神器ui-grid的具体代码,供大家参考,具体内容如下 html:  (代码仅用于解释得更清楚,并未完全展示)...

本文实例为大家分享了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,需要注意数据格式是否符合要求,否则就要先处理好。

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