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

関連する問題