我有一个对象数组,如下所示。
$scope.students = [{'isSelected': true},
{'isSelected': true},
{'isSelected': false},
{'isSelected': true},
{'isSelected': true},
]
如何获取isSelected
属性设置为true
的count items?
更新:
问题是$scope.students
是从REST api获取的,简单地循环$scope.students变量是不起作用的,因为在请求完成之前,变量是undefined
,所以循环代码错误地显示为$scope.students is not defined
。
我尝试使用$watch
,但在这种情况下,我必须在watch指令下定义循环,并且它只在定义了$scope.students时起作用一次,之后循环不起作用,因为$scope.students本身没有变化。
发布于 2014-11-17 21:52:11
还有另一种方法可以做到这一点: AngularJS过滤器。你可以这样写:
var selectedCount = $filter('filter')($scope.students, { isSelected: true }).length;
发布于 2016-04-04 18:57:14
你也可以使用javascript filter方法(参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)。
$scope.selectedStudentsCount = function() {
return $scope.students.filter(function(obj){return obj.isSelected}).length;
}
https://stackoverflow.com/questions/15360256
复制相似问题