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

问题描述 投票:0回答:2

如果我定义了过滤器

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测试但是会引发错误)。

提前致谢。

angularjs angularjs-filter
2个回答
0
投票

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

尝试

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

更新

你只是错过了括号。

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

0
投票

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

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

function controller($filter){
// code here    
  $filter('filterName')(arg1,arg2);
//
}
© www.soinside.com 2019 - 2024. All rights reserved.