Если я смотрю на этот ответ https://stackoverflow.com/a/29629034/3177115, я вижу, что NgTableParams
используется по-другому.Вам нужно использовать его с обещанием, которое возвращает данные обратно в объект NgTableParams.
$scope.tableParams = new ngTableParams({
page: 1, count: 5,
}, {
getData: function ($defer, params) {
$http.get(testUrl, { params: params })
.then(function(res) {
$defer.resolve(res.data.items);
}, function(reason) {
$defer.reject();
}
);
},
});
Подробную информацию см. В полном примере. Я немного упростил пример для лучшего понимания.
РЕДАКТИРОВАТЬ:
Я думаю, что API ng-таблиц изменился - он больше не ожидает защитника.Теперь, снова глядя на ваш первый пример кода (который, как вы говорите, работает), я понимаю, почему фильтр не работает: вы не передаете информацию о фильтре обратно в службу.
Документы таблицы ng говорят: http://ng -table.com / # / filtering / demo-filtering-basic
Есть функция getData?В этом случае вам нужно применить значения из NgTableParams.filters () к данным, которые вы хотите отобразить в вашей таблице.Обычно это тот случай, когда данные извлекаются с сервера
Я не знаю вашу службу, но можете ли вы добавить параметры фильтра в вызов службы?
var clientes = clientesService.getAll(baseUrl, params._params)
Кстати: документы ng-таблицы - это кошмар - все образцы наследуются друг от друга и используют директивы и инъекции.