AngularJS - 在过滤之前在页面上加载所有结果

时间:2017-08-27 17:34:54

标签: angularjs angularjs-ng-repeat angular-filters

我已经设置了一个自定义过滤器 - certFilter - 根据从动态生成的复选框中选择的内容进行过滤。这工作正常但我正在尝试计算如何在初始页面加载时加载所有结果,因为现在没有任何结果显示,直到您选择要过滤的内容。

<p ng-repeat="cert in allCerts">
   <input type="checkbox" ng-model="status"  
                          ng-change="ifCheck(filteredCerts, cert, status)"> {{ cert }}
</p>
<div ng-repeat="expert in expertList | certFilter:filteredCerts ">
   <h2>{{ expert.data.name }}</h2>
</div>

我不确定如何在选择过滤器选项之前显示所有结果。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果要在status复选框模型变为true之前禁用过滤器,则可以返回输入列表,如:

<div ng-repeat="pro in poolProList | certFilter:{'fc':filteredCerts, 'status': status} ">

app.filter('certFilter', function() {
   return function( items, settings) {
    var filtered = [];

   if(!settings.status){ // where "status" is ngModel of checkbox
      filtered = items;
   } 

    // ...
    return filtered;
  };
});