Angular表格神器ui-grid應(yīng)用詳解
本文實(shí)例為大家分享了Angular表格神器ui-grid的具體代碼,供大家參考,具體內(nèi)容如下
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:'手機(jī)號', width: 200}, {field: 'userName', displayName:'用戶名', width: 100}, {field: 'unitName', displayName:'單位', width: 300}, { field: 'createTime', displayName: '注冊時(shí)間', 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: '詳細(xì)信息', 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");
設(shè)置ui-grid格式:通過html中的ui-grid='gridOptions' (gridOptions可以自己定義) 再通過$scope.gridOptions來綁定
在上面的代碼中:
enableSorting:定義是否排序
對于列的定義columnDefs中:
field就是表格數(shù)據(jù)$scope.gridOptions.data中的字段,
displayName就是顯示在表格中的顯示的列項(xiàng)名,如果沒有定義,那么顯示的就是field的名稱
ui-grid怎么單獨(dú)定義一個(gè)單元格的樣式?比如做成一個(gè)按鈕。
可以使用cellTemplate屬性,但是需要注意的是,單元格定義的html中如果要綁定函數(shù),并不能像angular常規(guī)的來綁定,需要在綁定的函數(shù)前加上“grid.appScope”,比如“grid.appScope.func()”
ui-grid如果要將某行的某個(gè)數(shù)據(jù)傳入函數(shù)中需要使用這樣的形式:“row.entity.createTime”,creatTime就是你要傳入的參數(shù)的名稱(對應(yīng)于“field”)
表格的數(shù)據(jù)可以通過請求后端接口來獲取,賦值給$scope.gridOptions.data,需要注意數(shù)據(jù)格式是否符合要求,否則就要先處理好。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用yeoman構(gòu)建angular應(yīng)用的方法
下面小編就為大家?guī)硪黄褂脃eoman構(gòu)建angular應(yīng)用的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08Angular在一個(gè)頁面中使用兩個(gè)ng-app的方法(二)
這篇文章主要介紹了Angular在一個(gè)頁面中使用兩個(gè)ng-app的方法(二),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02AngularJS基礎(chǔ) ng-init 指令簡單示例
本文主要介紹AngularJS ng-init 指令,這里幫大家整理了關(guān)于ng-init 指令的基本知識資料,并附有簡單的代碼示例,有需要學(xué)習(xí)的小伙伴可以參考下2016-08-08