【问题标题】:AngularJS checkbox filtering not filtering upon page loadAngularJS复选框过滤在页面加载时不过滤
【发布时间】:2016-08-07 04:52:29
【问题描述】:

jsfiddle 在这里:http://jsfiddle.net/jesperlehtinen/dx05bobb/2/


我有一个对象列表,我想在页面加载时对其进行过滤。基本上我有一个这样的复选框:

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

还有一个项目列表:

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

要过滤的js在控制器中:

$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" 使其被选中,但它不执行实际的过滤。如何使用一个值(或函数)初始化复选框,使其在页面加载时被检查并执行过滤?

【问题讨论】:

    标签: javascript angularjs checkbox filter


    【解决方案1】:

    我意识到这就像使用默认过滤器值设置为 true 来初始化过滤器一样简单。所以$scope.filter = {}; 变成了$scope.filter = {'Active':true};

    【讨论】:

      【解决方案2】:

      使用 ng-init 将复选框的 ng-model 初始化为 true。

      【讨论】:

      • 由于我的ng-model 绑定到过滤函数,我将如何使用ng-init 将其初始化为真?
      猜你喜欢
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      相关资源
      最近更新 更多