【发布时间】:2015-04-16 21:44:59
【问题描述】:
我有一个复选框+标签的列表。如果选中第一个,则必须禁用所有复选框(第一个除外)。问题是如果我取消选中第一个复选框,所有其他复选框仍然被禁用,我希望它们再次启用。
JS
<li ng-repeat="ques in questions">
<input type="checkbox" ng-click="addRemove(ques)" ng-checked="contains(ques) != -1" ng-disabled="noneSelected && $index != 0"/> {{ques.question}}
</li>
控制器
if (ques.question == "None") {
var index = $scope.contains(ques);
if (index != -1) {
$scope.noneSelected = false;
$rootScope.selectedQuestions.splice(index, 1);
} else {
$scope.noneSelected = true;
$rootScope.selectedQuestions = [];
$rootScope.selectedQuestions.push(ques);
}
}
解决方案
在其余代码中,我在 selectedQuestions 数组上做了一些 sutff。它造成了一些麻烦。
【问题讨论】:
-
控制器中的代码是在 ng-click 中调用的吗?
-
是的,这是函数“addRemove(ques)”
-
你能告诉我你的
questions数组值吗? -
它们来自数据库它包含一个ID,问题(这是文本),描述(也是文本)
-
我的第一个猜测是 noneSelected 属性没有在正确的范围内定义,但不确定是如何发生的。