取消选中n后取消选中复选框 - Angularjs

时间:2015-05-18 07:25:49

标签: angularjs checkbox

如果取消选中最少三个,我想限制用户取消选中复选框。如果已经取消选中任何三个复选框,他将无法取消选中复选框。

这是代码。

http://jsbin.com/corecetepa/1/edit

2 个答案:

答案 0 :(得分:0)

你可以这样做,

<label ng-repeat="option in permissions.headers"> 
      <input ng-click="checkPermission()" type="checkbox" 
      ng-model="option.selected" 
      ng-checked="option.selected"> 
      {{  option.title  }}
    </label>

  $scope.checkPermission=function(option){
      var lengthTemp=($filter('filter')($scope.permissions.headers,{'selected':true})).length;
       if(lengthTemp<3) {         
            option.selected=!option.selected;
       }     
    };
}

$ filter('filter')($ scope.permissions.headers,{'selected':true}))。length 将过滤那些选中了复选框的permissions.headers中的选项。

我希望这就是你要找的东西。

答案 1 :(得分:0)

您可以执行类似

的操作
<input ng-change="!option.selected && permissions.headers | filter: {selected: true}).length<=3 && option.selected= true" type="checkbox" 
ng-model="option.selected" 
ng-checked="option.selected"/> 
{{  option.title  }}

您可以将相同的逻辑移动到控制器方法。

<强>标记

ng-change="changeCheckbox(option)

<强>控制器

$scope.changeCheckbox  = function (option)
{
    if(!option.selected && $scope.$eval('permissions.headers | filter: {selected: true}).length<=3'))
       option.selected = false;
}