在AngularJS控制器中调用普通过滤器函数
在我看来,我使用一个函数来过滤选择框中的某些项目:在AngularJS控制器中调用普通过滤器函数,angularjs,angularjs-filter,Angularjs,Angularjs Filter,在我看来,我使用一个函数来过滤选择框中的某些项目: <select class="..." ng-model="selectedItem" ng-options="item.name for item in items | filter:filterItems(someArgument)"> </select> 这个很好用 但是,现在我想在控制器中使用相同的过滤函数,并计算过滤后的项目数 我无法使用此代码,因为filterItems()不是AngularJS筛选
<select class="..."
ng-model="selectedItem"
ng-options="item.name for item in items | filter:filterItems(someArgument)">
</select>
这个很好用
但是,现在我想在控制器中使用相同的过滤函数,并计算过滤后的项目数
我无法使用此代码,因为filterItems()
不是AngularJS筛选器:
$scope.filterItems = function(someArgument) {
return function(item) {
// Do something
return someResult;
}
};
$scope.countFilteredItems = function() {
return $filter('filterItems')($scope.items, someArgument).length;
};
我有没有办法在控制器中使用我的过滤功能,而不需要自己重新实现整个过滤过程?我可以将
$filter
服务与我的香草过滤器功能一起使用吗?我设法用$filter
服务调用了我的过滤器功能,正如@jornsharpe在他的评论中所建议的:
$scope.countFilteredItems = function() {
var filteredItems = $filter('filter')($scope.items, $filterItems(someArgument));
var count = 0;
if (filteredItems !== undefined && filteredItems !== null) {
count = filteredItems.length;
}
return count;
};
你读了吗?您可以将任意谓词函数传递给$filter
。例如:$filter('filter')($scope.items,$scope.filterietems(someArgument))
?