2016-04-15 66 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'将它初始化为真? –