AngularJS-在控制器内部使用函数作为过滤器

时间:2019-02-19 17:11:32

标签: angularjs angularjs-filter

如果我定义了过滤器

app.filter('filterName', function() {
    return function(var) {
        // Some filter stuff
    }
}

我可以在执行$filter('filterName')($scope.someObj);的控制器上调用它。

但是,这是我的问题,如果我有一个用作过滤器的函数

$scope.myFilterFunction = function() {
    return true;
}

在我的HTML中

<p ng-repeat="item in items | filter:myFilterFunction">{{item}}</p>

如何在控制器中使用此功能过滤器(我已经使用$ filter进行了测试,但会引发错误)。

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您已经实现了自定义过滤器filterName,为什么不使用它呢?

尝试

<p ng-repeat="item in items | filterName">{{item}}</p>

已更新

您只是缺少括号。

<p ng-repeat="item in items | filter:myFilterFunction()">{{item}}</p>

答案 1 :(得分:0)

在控制器中注入$ filter并与您的过滤器名称一起使用。

controller.$inject = ['$filter'];

function controller($filter){
// code here    
  $filter('filterName')(arg1,arg2);
//
}