На мой взгляд, я использую функцию для фильтрации некоторых элементов в поле выбора:
<select class="..."
ng-model="selectedItem"
ng-options="item.name for item in items | filter:filterItems(someArgument)">
</select>
Эта функция определена как обычная функция в контроллере, это не фильтр AngularJS:
$scope.filterItems = function(someArgument) {
return function(item) {
// Do something
return someResult;
}
};
Это прекрасно работает.
Однако теперь я хочу использовать ту же функцию фильтра в контроллере и подсчитывать количество элементов после фильтрации.
Я НЕ МОГУ использовать этот код, поскольку filterItems()
не является фильтром AngularJS:
$scope.countFilteredItems = function() {
return $filter('filterItems')($scope.items, someArgument).length;
};
Можно ли каким-либо образом использовать функцию фильтра в контроллере, фактически не выполняя сам процесс фильтрации? Могу ли я использовать сервис $filter
с функцией ванильного фильтра?