2017-08-27 41 views
2

我已经设置了一个自定义过滤器 - certFilter - 基于从动态生成的复选框中选择的过滤器。这工作正常,但我想弄清楚如何加载所有的结果在初始页面加载,因为现在没有结果显示,直到你选择你想要过滤。AngularJS - 在过滤之前加载页面上的所有结果

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

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

回答

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; 
    }; 
}); 
+0

感谢@MaximShoustin!你的答案肯定是有道理的,但我得到一个错误,说“设置”没有定义。 – bhood

+0

@bhood不可思议,看看这个演示:http://plnkr.co/edit/Rklf8gogHJgJ2B4npE2r?p=preview –

+0

不错!在演示中找到好的。什么是“设置”应该做的呢?我试过在Angular文档中查找它,但找不到它的任何内容... – bhood

相关问题