2015-05-18 2 views

ответ

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

ИЛИ

Вы можете переместить ту же логику к методу контроллера.

Markup

ng-change="changeCheckbox(option) 

Контроллер

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

Это прекрасно работает. Большое спасибо :) –

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

$ фильтра ('фильтр') ($ scope.permissions.headers, { 'выбрано': истинно}).) Длина будет фильтровать эти параметры в permissions.headers, для которых установлен флажок.

Надеюсь, это то, что вы ищете.

+0

Спасибо за это, но это отключит Флажки должны быть проверены. Я хочу, чтобы они были проверены, но не были отменены, когда достигнут предел. –

+0

Проверьте отредактированный ответ и дайте мне знать, если это то, что вы искали. @NishantSankhala – Jan

+0

Это не работает :(, это сработало для вас в jsbin? –