<div class="right">
<a class="waves-effect waves-light btn"
ng-repeat="answer in question.answers"
ng-click="answer.isSelected = !answer.isSelected">
{{ answer.letter }}
</a>
</div>
那是我的代码。我有很多answers
,我希望用户选择一个。我有那个部分在工作。我无法正常工作的部分是我要为isSelected
的所有其他答案设置false
。我怎么能做到这一点?
请记住,我的数据是SUPER嵌套的。因此question
是ng-repeat="question in instructionSet.questions"
的一部分而instructionSet
是另一个ng-repeat
的一部分,依此类推。
答案 0 :(得分:1)
如果你只能选择一个元素,最好有一个参数,所以保存状态而不是每个对象都有。
<div class="right">
<a class="waves-effect waves-light btn"
ng-repeat="answer in question.answers"
ng-click="$parent.question.selectedAnswer =
$parent.question.selectedAnswer == answer ? null: answer">
{{ answer.letter }}
</a>
</div>
答案 1 :(得分:0)
非常简单 - 在重复范围之上声明一个变量,让我们说selectedIndex
并将其设置为-1
$scope.selectedIndex = -1;
现在将其设置为单击时所选的索引(如果尚未选中),或者如果已选择则返回-1
:
ng-click="setIndex($index)">
方法:
$scope.setIndex = function(idx) {
$scope.selectedIndex = $scope.selectedIndex === idx ? -1 : idx;
}