Angularjs模态与复选框表现奇怪

时间:2014-06-02 17:47:24

标签: javascript angularjs

我有一个角色应用plunker

当我们点击按钮时,它会打开一个带有项目列表的模态对话框。根据复选框表输入中的条件预先检查其中2个项目。

这是推动和拼接的功能:

$scope.toggleCheck = function (course) {
    //debugger
    var x = $scope.checkplanneddetails(course);
    if ($scope.selectedCourses.indexOf(course) === -1){
        $scope.selectedCourses.push(course);
        $scope.planned += 3;
    } else {
        $scope.selectedCourses.splice($scope.selectedCourses.indexOf(course), 1);
        $scope.planned -= 3;
    }

    $scope.getPercentage();
};

当从此列表中选择(选中)课程时,它会向$scope.planned添加3并相应地增加进度条。同样,当取消选中复选框时,它也会以相同的方式减少。

但是,当加载模态对话框时,对于已经检查的项目,此功能会相反。代码出错在哪里?

1 个答案:

答案 0 :(得分:2)

问题是你是否试图在attitional数组中保持复选框的状态。相反,你应该只使用" ng - "指令(如ng-model或ng-checked for checkboxes)

http://plnkr.co/edit/Nm9N2zdBZL7IubMCatjz?p=preview

这是我的修改:

        $scope.toggleCheck = function (course) {
            //debugger
                if(course.checked){
                    $scope.planned += 3;
                } else {
                    $scope.planned -= 3;
                }


                $scope.getPercentage();
        };

并且我已经改变了" ng-clicked" for" ng-changed",因为第一个是在实际更改值之前触发的