-->

AngularJS自定义过滤器(AngularJS custom filter)

2019-10-31 04:20发布

我正在打开的逻辑在我的控制器成过滤嘴。 逻辑工作在我的API查询,但我想用它作为过滤后的数据基础上,routeparam已被过滤。

这里是我的查询:

CAL.API.query(function(results) {
    $scope.calendar = results;
  var temp = [];
  var result = temp.concat.apply(temp,results.map(function(itm){ 
  return temp.concat.apply(temp, Object.keys(itm.year).map(function(key){ 
   return itm.year[key];   
}));    
}));  
  $scope.super = result;
  console.log(result);
    });  

这里是我的过滤器:

angular.module('hcApp')
.filter('super', function() {
  return function(items) {
    var temp = [];
    var result = temp.concat.apply(temp,items.map(function(itm){ 
      return temp.concat.apply(temp, Object.keys(itm.year).map(function(key){ 
       return itm.year[key]; 
  }));
}));  
    return result;
  };
});

我觉得没有什么是错的过滤器,但由于某种原因,它不是在我看来工作。

<div class="calDynamic" data-ng-repeat="n in [] | range:100">
  <div ng-repeat="cal in calendar[n].year | filterKey:month | super">
    <p>{{cal}}</p>
  </div>
</div>

filterKey:

angular.module('customFilters', []).filter('filterKey', function() {

 function comparator(a, b) {
    return (''+a).toLowerCase().indexOf((''+b).toLowerCase()) > -1;
  }

  return function(obj, searchKey) {
    var filtered = {};
    angular.forEach(obj, function(value, key) {
      if (comparator(key, searchKey)) {
        filtered[key] = value;
      }
    });
    return filtered;
  };
});
文章来源: AngularJS custom filter