我有一个角色应用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并相应地增加进度条。同样,当取消选中复选框时,它也会以相同的方式减少。
但是,当加载模态对话框时,对于已经检查的项目,此功能会相反。代码出错在哪里?
答案 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",因为第一个是在实际更改值之前触发的