У меня есть аналогичная проблема, и я решил использовать подсказки в этом post.
Смарт Таблица док говорит:
stSetFilter
заменяет фильтр, используемый при поиске через смарт таблицы. Когда поведение по умолчанию для stSearch
не соответствует вашим требованиям , как в выборе, где одна запись является подстрокой другого, использует пользовательский фильтр для достижения ваших целей.
и:
Обратите внимание, что st-safe-src
требуется для выбора, чтобы правильно отображать все различные элементы в коллекции. Если это будет опущено, выбор будет содержать только значения из элементов, видимых в таблице, а также , затронутых пейджингом.
Вы можете объявить свой собственный фильтр внутри элемента таблицы в HTML:
<table ... st-set-filter="myCustomFilter" class="table table-striped">
... и ваш может настроить фильтр (в приложении) через функцию предиката. Она могла бы работать таким образом:
// filter method, creating `myCustomFilter` a globally
// available filter in our module
.filter('myCustomFilter', ['$filter', function($filter) {
// function that's invoked each time Angular runs $digest()
return function(input, predicate) {
searchValue = predicate['$'];
//console.log(searchValue);
var customPredicate = function(value, index, array) {
console.log(value);
// if filter has no value, return true for each element of the input array
if (typeof searchValue === 'undefined') {
return true;
}
var p0 = value['name'].toLowerCase().indexOf(searchValue.toLowerCase());
var p1 = value['nickname'].toLowerCase().indexOf(searchValue.toLowerCase());
if (p0 > -1 || p1 > -1) {
// return true to include the row in filtered resultset
return true;
} else {
// return false to exclude the row from filtered resultset
return false;
}
}
//console.log(customPredicate);
return $filter('filter')(input, customPredicate, false);
}
}])
Я сделал эту маленькую plnkr, чтобы увидеть фильтр в действии
Я предложил способ решить проблему. Взгляните на ответ! – floatingpurr