Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算angularjs中选中复选框的数量_Javascript_Angularjs - Fatal编程技术网

Javascript 计算angularjs中选中复选框的数量

Javascript 计算angularjs中选中复选框的数量,javascript,angularjs,Javascript,Angularjs,我尝试显示使用此代码的复选框数 <li class="list-group-item" ng-repeat="user in data"> <input type="checkbox" ng-model="user.checked"/> {{user.name}} </li> <p>total checked: {{user.checked.length}}</p> {{user.name} 检查总数:{{user.ch

我尝试显示使用此代码的复选框数

<li class="list-group-item" ng-repeat="user in data">
  <input type="checkbox" ng-model="user.checked"/>
  {{user.name}}
</li>

<p>total checked: {{user.checked.length}}</p>
  • {{user.name}
  • 检查总数:{{user.checked.length}

    我还尝试了{{}}中的count(),但不起作用


    您可以创建一个函数来计算控制器内的所有选中元素

        $scope.calculateChecked = function() {
          var count = 0;
    
          angular.forEach($scope.data, function(value) {
            if(value.checked)
              count++;
          });
    
          return count;
       };
    
    然后在你的HTML中

     <p>total checked: {{calculateChecked()}}</p>
    
    检查的总数:{{calculateChecked()}

    标记:

    检查总数:{{checkedCount()}

    控制器:

    $scope.checkedCount = function(){
      return $scope.data.filter(function(person){
        return person.checked;
      }).length;
    }
    

    您应该通过选中的
    属性筛选用户:

    <p>total checked: {{ (data | filter:{checked: true }).length }}</p>
    
    已检查的总数:{{(数据|过滤器:{已检查:true}).length}


    试试
    {{user.checked | length}}
    ?@Fabien,那不行。是的,我们确实做到了,你的解决方案非常漂亮,可读性很强,但在某些浏览器版本上不起作用。正如ryeballer提到的,
    数组。过滤器在IE8中不受支持。源代码:代码不错,但我在控制台中忽略了此错误:[$interpolate:interr]…pic&p1=TypeError%3A%20无法读取%20属性%20'筛选器“%20of%20undefined@user3522729,您使用的是IE8吗?查看plunker时是否出现该错误?或者这是你自己的代码?很好。工作中的普朗克:这很聪明:)+1非常感谢,伙计。。我花了几个小时才找到它。。。很好的例子。三年前的angular 1.5仍然有效。需要注意的是,复选框必须有
    ng model=user.checked
    (就像在plunker中一样),但关键是属性被选中。非常整洁,多年来我一直在使用ng change和循环数据。这要简单得多。