2016-04-15 107 views
1

的jsfiddle這裏:http://jsfiddle.net/jesperlehtinen/dx05bobb/2/AngularJS複選框未濾波過濾後的頁面加載


我有,我想在頁面加載篩選對象的列表。基本上,我有這樣一個複選框:在控制器

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

的JS給過濾器:

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

和項目的列表

$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; 
} 

眼下這工作,種。當我加載頁面時,複選框未被選中,檢入進行過濾。不過,我希望在加載時檢查複選框,並進行過濾。使用ng-checked="true"使其被選中,但它不執行實際的過濾。我怎樣才能使用一個值(或函數)來初始化複選框,以便在加載頁面時檢查它們並執行過濾?

回答

2

我意識到這很簡單,只需將默認篩選器值設置爲true即可初始化篩選器。所以$scope.filter = {};變成$scope.filter = {'Active':true};

0

使用ng-init將您的ng-model複選框初始化爲true。

+0

因爲我的'ng-model'綁定了一個過濾函數,我如何使用'ng-init'將它初始化爲真? –