<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@2.1.3" data-semver="2.1.3" src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-table/0.3.3/ng-table.min.js"></script>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
<link rel="stylesheet" href="http://ng-table.com/dist/ng-table.min.css" />
<script src="script.js"></script>
</head>
<body ng-app="app">
<div class="container" ng-controller="test">
<div class="page-header">
<h3>Reload filtered data with <code>ng-table</code></h3>
</div>
<strong>Directions:</strong>
<p>Filter <strong>Name</strong> by "saur" as in "dinosaur" and then click "Add Person".</p>
<button type="button" class="btn btn-default" ng-click="addPerson()">Add Person</button>
<hr>
<table ng-table="tableParams" show-filter="true" class="table">
<tbody>
<tr ng-repeat="user in $data">
<td data-title="'Name'" filter="{name: 'text'}">
{{user.name}}
</td>
<td data-title="'Age'">
{{user.age}}
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
console.clear();
(function(angular) {
'use strict';
angular.module('app', ['ngTable']);
angular.module('app').controller('test', testController);
testController.inject = ['$scope', '$filter', 'ngTableParams'];
function testController($scope, $filter, ngTableParams) {
var data = [{name:'Larry', age:25},
{name:'Steven', age:33},
{name:'Clifford', age:92},
{name:'Bulbasaur', age:11},
{name:'Gary', age:29},
{name:'Dylan', age:35}];
var count = 3;
$scope.tableParams = new ngTableParams({
page: 1,
count: count,
filter: {name:''}
}, {
total: data.length,
getData: function($defer, params) {
// use build-in angular filter
var orderedData = params.filter() ?
$filter('filter')(data, params.filter()) :
data;
$scope.users = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());
params.total(orderedData.length); // set total for recalc pagination
$defer.resolve($scope.users);
}
});
$scope.addPerson = function() {
data.push({name:'Venosaur', age:21});
$scope.tableParams.count(count);
$scope.tableParams.reload();
};
}
}(angular));
/* Styles go here */