如何通过单击按钮来检查嵌套ng-repeat中的所有框?

时间:2015-06-24 18:49:46

标签: javascript html angularjs checkbox

所以我需要做的只是通过点击页面顶部的toggleAll()按钮来检查所有显示的(使用ng-show)学生复选框。

这是我的代码:

<div ng-repeat="course in content" ng-show="course.show" >
    <div ng-repeat="student in course.students" ng-show="student.show" ng-click="toggleStudent(student)">
         <input type="checkbox">

                ........

我尝试使用:

$scope.toggleAll = function () {
        for (var i = 0; i < $scope.course.students.length; i++) {
            ...
        }
    };

但长度未定义。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

当然是一个局部变量,因此无法在主范围内访问。

假设您只想检查一门课程的全部内容,您应该将该课程传入该课程。

<div ng-repeat="course in content" ng-show="course.show" >
    <input type='checkbox' ng-click='toggleAll(course)'>
    <div ng-repeat="student in course.students" ng-show="student.show" ng-click="toggleStudent(student)">
        ...


$scope.toggleAll = function (course) {
    for (var i = 0; i < course.students.length; i++) {
        ...
    }
};