【发布时间】:2018-09-07 11:19:18
【问题描述】:
在我看来,我使用一个函数来过滤选择框中的一些项目:
<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 服务与我的香草过滤器功能一起使用吗?
【问题讨论】:
-
你读过the docs吗?您可以将任意谓词函数传递给
$filter。 -
像这样:
$filter('filter')($scope.items, $scope.filterItems(someArgument))?
标签: angularjs angularjs-filter