2017-08-27 37 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

相關問題