This is the directive to allow the use of JQuery footable plugin (http://fooplugins.com/plugins/footable-jquery/) in angular.
bower install angular-footable
angular
.module('angular-footable-example', [
'ui.footable'
])
<table class="table footable">
there is no new configuration add in this module, to enable sorting feature, you only need to follow the setup of the footable
<script type="text/javascript" src="https://github.com/ziscloud/angular-footable/raw/master/footable/js/footable.sort.js"></script>
<thead>
<tr>
<th data-type="numeric" data-sort-initial="true">
ID
</th>
<th>
First Name
</th>
<th data-sort-ignore="true">
Last Name
</th>
<th data-hide="phone,tablet">
Job Title
</th>
<th data-type="numeric" data-hide="phone,tablet">
DOB
</th>
<th data-hide="phone">
Status
</th>
</tr>
</thead>
<script type="text/javascript" src="https://github.com/ziscloud/angular-footable/raw/master/footable/js/footable.filter.js"></script>
<input id="filter" type="text"/>
<table class="table footable" data-filter="#filter">
custom filter
<select class="filter-status" ng-model='filter.status' ng-change="filterByStatus()">
<option></option>
<option value="active">Active</option>
<option value="disabled">Disabled</option>
<option value="suspended">Suspended</option>
</select>
<a href="#clear" class="clear-filter" title="clear filter" ng-click="clearFilter()">[clear]</a>
<table class="table footable" data-before-filtering="filteringEventHandler">
in the controller
.controller('exampleCtrl', function($scope) {
$scope.clearFilter = function() {
$('.filter-status').val('');
$('.footable').trigger('footable_clear_filter');
};
$scope.filteringEventHandler = function(e) {
var selected = $('.filter-status').find(':selected').text();
if (selected && selected.length > 0) {
e.filter += (e.filter && e.filter.length > 0) ? ' ' + selected : selected;
e.clear = !e.filter;
}
};
$scope.filterByStatus = function() {
$('.footable').trigger('footable_filter', {
filter: $('#filter').val()
});
};
$scope.filter = {
status: null
};
})
paginate table is very easy, follow the demo page of footable is enough
<script type="text/javascript" src="https://github.com/ziscloud/angular-footable/raw/master/footable/js/footable.paginate.js"></script>
<table class="table footable" data-page-size="5">
<tfoot class="hide-if-no-paging">
<tr>
<td colspan="6" align="center">
<ul class="pagination"></ul>
</td>
</tr>
</tfoot>
angular-slimscroll is released under the MIT License. Feel free to use it in personal and commercial projects.