使功能始终可用,而无需调用它

时间:2015-05-19 08:26:13

标签: angularjs

我想验证已选中复选框的最大数量。 我有这个功能,它有效。

$('.Item:input').each(  function (i, element) {
    $(element).click(function() {      
      if ($('.Item:checked').length > 10) {        
        alert('error');
        $(element).attr('checked', false)
      }    
    })  
  });

现在我不知道如何以及在哪里以角度调用它。我想在ng-click事件上调用它,但它只在第二次点击时工作(显然)(第一次只调用函数)

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

我使用data-ng-init而不是ng-click解决了它。

答案 1 :(得分:0)

发出

$viewContentLoaded事件意味着要接收此事件,您需要一个父控制器,如:

<div ng-controller="MainCtrl">
<div ng-view></div>
</div>

您可以在MainCtrl中收听事件

 $scope.$on('$viewContentLoaded', function(){
//Here your view content is fully loaded !!
 });

检查Demo

我认为这可能会解决您的问题,或者至少让您更接近解决方案。

答案 2 :(得分:0)

你拥有的代码是jquery,因为角度方法完全不同。

我举了一个例子。 http://jsfiddle.net/neolivz/8x15o1t4/

您可以设置模型

<input type="checkbox" ng-model="test.value" ng-change ="updateCount(test)">

并在updateCount api

中执行您想要的操作
 $scope.updateCount = function(test){
        if(test.value){
            $scope.count++;
        }else{
            $scope.count--;
        }
        if($scope.count==10){
            test.value = false;
            $scope.count--;
            return;     
        }
    }