Problema resolvido com o $watch ;
Eis aqui o meu controller, lembrando que os dados retornados do Backend já vem com a paginação correta. No $scope.filtro eu posso acrescentar dinamicamente os dados que eu quero filtrar (nome, descricao, data, etc.)... os dados estão vindo redondinhos e paginados.
app.controller('BuscaCtrl', function($scope, httpServiceAPI, $route){
var page = ($route.current.page);
$scope.pagina = {};
$scope.filtro = {
page: 0
};
$scope.$watch('filtro', function() {
loadDataTable();
}, true);
var loadDataTable = function(){
httpServiceAPI.get(page + '/busca.json', $scope.filtro).then(
function(response){
$scope.pagina = response.data;
}
);
}
$scope.buscar = function(){
$scope.filtro.page = 0;
loadDataTable();
}
$scope.setPage = function(index){
$scope.filtro.page = index;
loadDataTable();
}
$scope.incrementPage = function(){
if(! $scope.pagina.last){
$scope.filtro.page++;
loadDataTable();
}
}
$scope.decrementPage = function(){
if(! $scope.pagina.first){
$scope.filtro.page--;
loadDataTable();
}
}
$scope.excluir = function(id , object){
swal({
title: 'Tem certeza?',
text: 'Se excluir "' + object + '", não poderá recuperar depois.',
type: "warning",
showCancelButton: true,
confirmButtonText: 'Sim, exclua agora!',
closeOnConfirm: false
}, onExluirConfirmado );
function onExluirConfirmado(){
httpServiceAPI.delete(page+'/'+id).then(onExcluidoSucesso, onErroExcluir);
}
function onExcluidoSucesso() {
swal('Pronto!', 'Excluído com sucesso!', 'success');
loadDataTable();
}
function onErroExcluir(response) {
swal('Oops!', response.responseText, 'error');
}
}
//loadDataTable();
});