2016-04-15 6 views
1

jsfiddleこちらのページのロード時にフィルタリングしないフィルタリング:http://jsfiddle.net/jesperlehtinen/dx05bobb/2/AngularJSチェックボックスが


私は、ページのロード時にフィルタリングしたいオブジェクトのリストを持っています。今

$scope.cards = $scope.$parent.cards; 

$scope.filter = {}; 

$scope.filterByStatus = function(card) { 
    return $scope.filter[card.status] || noFilter($scope.filter); 
}; 

function noFilter(filterObj){ 
    for(var key in filterObj){ 
     if(filterObj[key]){ 
      return false; 
     } 
    } 
    return true; 
} 

:コントローラでのフィルタへ

<tr data-ng-repeat="card in cards.data | filter:filterByStatus">

JSです:

<input type="checkbox" class="form__checkbox" ng-model="filter['processed']">

と項目のリスト:基本的に私はこのようなチェックボックスを持っていますこれは、一種の作品です。ページを読み込むとチェックボックスはオフになり、チェックインするとフィルタリングが実行されます。しかし、私はロード時にチェックボックスをチェックし、フィルタリングもしたいと思います。 ng-checked="true"を使用すると、チェックされますが、実際のフィルタリングは実行されません。チェックボックスをページロード時にチェックし、フィルタリングを実行する値(または関数)でチェックボックスを初期化するにはどうすればよいですか?

答えて

2

デフォルトのフィルタ値をtrueに設定してフィルタを初期化するのと同じくらい簡単だと分かりました。従って$scope.filter = {};$scope.filter = {'Active':true};になります。

0

ng-initを使用してチェックボックスのng-modelをtrueに初期化します。

+0

私の 'ng-model'はフィルタリング関数にバインドされているので、' ng-init'を使ってどうすれば初期化できますか? –

関連する問題