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和循环数据。这要简单得多。