在列表过滤器中使用比较器过滤

时间:2014-09-19 11:35:56

标签: angularjs angularjs-filter

我试图创建一个可以在ng-repeat和控制器中使用的过滤器,我有点困难。

我已经创建了一些

形式的控制器过滤器
$scope.myfilter = function($item){
    if($item == "blah"){
         return true;
    }
    return false;
}

但发现了你附加到模块的那些,而是接受列表。

angular.module('filters',[])
filter(function(){
    return function(list){
        //filter code goes here.
    }
});

显然它可以在列表上运行比较器版本,因为它可以用于ng-repeats。有没有一种简单的方法可以在列表中运行比较器滤波器?我有点困惑,你何时会使用一个而不是另一个?

1 个答案:

答案 0 :(得分:0)

请看这里http://jsbin.com/wajecu/2/edit

您可以在此处找到更多文档https://docs.angularjs.org/tutorial/step_09

过滤

 app.filter('myfilter', function() {
        return function(input) {
          var filtered = [];

          angular.forEach(input, function (value){
             if(value == "blah"){ filtered.push(value); }   

          });
            return filtered;   

        };
     });

<强>控制器:

app.controller('firstCtrl', function($scope,$filter){      

      $scope.items = ["blah", "ech", "mech"];
      //you can use your filter inside controller in that way:
      $scope.filtered= $filter('myfilter')($scope.items);

});

<强> HTML:

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