javascript中的角度ng-repeat prefilter

时间:2015-03-20 18:49:09

标签: javascript angularjs angular-filters

我在tr元素上有以下角度js过滤器ng-repeat。我怎么能在javascript中完成所有这些?是否可以在一个自定义过滤器中执行此操作?

注意:showRow是一个返回bool的函数,搜索字符串是一个字符串

ng-repeat="lob in filtered = (lobs | filter : showRow | filter : searchString | orderBy : 'name':true )

2 个答案:

答案 0 :(得分:1)

您可以使用$ filter服务或$ scope。$ eval:

$filter('orderBy')(
    $filter('filter')(
        $filter('filter')($scope.lobs, $scope.showRow),
    $scope.searchString),
'name', true);

$scope.$eval("lobs | filter : showRow | filter : searchString | orderBy : 'name':true");

未经测试,但应足够接近工作。

是的,使用第一种方式,您可以创建自己的过滤器来完成所有这些。

答案 1 :(得分:1)

代码如下所示

var firstFilter = $filter('filter')($scope.lobs, $scope.showRow)
var secondFilter = $filter('filter')(firstFilter , $scope.searchString)
var finalFilter = $filter('orderBy')(secondFilter , 'name', true)

不要忘记在控制器

上添加$filter依赖项