在我看来,我使用一个函数来过滤选择框中的某些项目:
<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
服务吗?
答案 0 :(得分:0)
正如@jonrsharpe在他的评论中建议的那样,我设法通过<script>
function showNoty() {
var n = new Noty({
text: "<?php echo $message; ?>",
type: "error",
layout: "top",
theme:"sunset",
container: "#content",
closeWith:[]
});
n.show();
}
showNoty();
</script>
服务调用了我的过滤器功能:
$filter