grid生成(簡單範例):
<script>
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
$scope.myData = [{name: "Moroni", age: 50},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34}];
$scope.gridOptions = { data: 'myData' };
});
</script>
<body ng-controller="MyCtrl">
<div ng-grid="gridOptions"></div>
</body>
進階版:
main.js
- var app = angular.module('myApp', ['ngGrid']);
- app.controller('MyCtrl', function($scope, $http) {
- $scope.filterOptions = {
- filterText: "",
- useExternalFilter: true
- };
- $scope.totalServerItems = 0;
- $scope.pagingOptions = {
- pageSizes: [5, 10, 20],
- pageSize: 5,
- currentPage: 1
- };
- $scope.setPagingData = function(data, page, pageSize){
- var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
- $scope.myData = pagedData;
- $scope.totalServerItems = data.length;
- if (!$scope.$$phase) {
- $scope.$apply();
- }
- };
- $scope.getPagedDataAsync = function (pageSize, page, searchText) {
- setTimeout(function () {
- var data;
- if (searchText) {
- var ft = searchText.toLowerCase();
- $http.get('largeLoad.json').success(function (largeLoad) {
- data = largeLoad.filter(function(item) {
- return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
- });
- $scope.setPagingData(data,page,pageSize);
- });
- } else {
- $http.get('largeLoad.json').success(function (largeLoad) {
- $scope.setPagingData(largeLoad,page,pageSize);
- });
- }
- }, 100);
- };
- $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
- $scope.$watch('pagingOptions', function (newVal, oldVal) {
- if (newVal !== oldVal && newVal.currentPage !== oldVal.currentPage) {
- $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
- }
- }, true);
- $scope.$watch('filterOptions', function (newVal, oldVal) {
- if (newVal !== oldVal) {
- $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
- }
- }, true);
- $scope.gridOptions = {
- data: 'myData',
- enablePaging: true,
- showFooter: true,
- totalServerItems:'totalServerItems',
- pagingOptions: $scope.pagingOptions,
- filterOptions: $scope.filterOptions
- };
- });
largeLoad.json:
[{"name": "Moroni", "allowance": 505050505050505050, "paid": true},
{"name": "Tiancum", "allowance": 53, "paid": false},
{"name": "Jacob", "allowance": 27, "paid": false},
{"name": "Nephi", "allowance": 29, "paid": false},
{"name": "Enos", "allowance": 34, "paid": false},
{"name": "Ether", "allowance": 42, "paid": false},
{"name": "Alma", "allowance": 43, "paid": true},
{"name": "Jared", "allowance": 21, "paid": true},
{"name": "Moroni", "allowance": 50, "paid": true},
{"name": "Tiancum", "allowance": 53, "paid": false},
{"name": "Jacob", "allowance": 27, "paid": false},
{"name": "Nephi", "allowance": 29, "paid": false},
{"name": "Enos", "allowance": 34, "paid": false},
{"name": "Ether", "allowance": 42, "paid": false},
{"name": "Alma", "allowance": 43, "paid": true},
{"name": "Jared", "allowance": 21, "paid": true},
{"name": "Moroni", "allowance": 50, "paid": true},
style.css
.gridStyle {
border: 1px solid rgb(212,212,212);
width: 600px;
height: 300px;
}
index_testGrid.jsp:
已上官網範例:http://angular-ui.github.io/ng-grid/