<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="utf-8">
<title>Custom Plunker</title>
<link rel="stylesheet" type="text/css" href="http://angular-ui.github.com/ng-grid/css/ng-grid.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>
<script type="text/javascript" src="http://angular-ui.github.com/ng-grid/lib/ng-grid.debug.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body ng-controller="MyCtrl">
<div class="gridStyle" ng-grid="gridOptions"></div>
</body>
</html>
/*style.css*/
.gridStyle {
border: 1px solid rgb(212,212,212);
width: 400px;
height: 300px
}
// main.js
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}
, {name: "Mark", age: 25}
, {name: "Tiancum",age: 43}
, {name: "Jacob",age: 27}
, {name: "Nephi",age: 29}
, {name: "Enos",age: 34}
, {name: "Mark", age: 25}
, {name: "Tiancum",age: 43}
, {name: "Jacob",age: 27}
, {name: "Nephi",age: 29}
, {name: "Enos",age: 34}
, {name: "Mark", age: 25}
, {name: "Tiancum",age: 43}
, {name: "Jacob",age: 27}
, {name: "Nephi",age: 29}
, {name: "Enos",age: 34}
, {name: "Mark", age: 25}
, {name: "Tiancum",age: 43}
, {name: "Jacob",age: 27}
, {name: "Nephi",age: 29}
, {name: "Enos",age: 34}
, {name: "Mark", age: 25}];
$scope.gridOptions = {
data: 'myData'
};
$scope.totalItems = 0;
$scope.pagingOptions = {
pageSizes: [5, 10, 20],
pageSize: 5,
currentPage: 1
};
$scope.filterOptions = {
filterText: "",
useExternalFilter: true
};
$scope.getPagedDataAsync = function (pageSize, page, searchText) {
setTimeout(function () {
var data;
if (searchText) {
var ft = searchText.toLowerCase();
$http.get('jsonFiles/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('jsonFiles/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.myData($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
}
}, true);
$scope.gridOptions = {
data: 'myData',
enablePaging: true,
showFooter: true,
totalServerItems: 'totalItems',
pagingOptions: $scope.pagingOptions
};
});