<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
,我希望用户选择一个。我有这部分工作。我没有工作的部分是我想为false
的所有其他答案设置isSelected
。我怎样才能做到这一点?
请记住,我的数据是超级嵌套的。因此,question
是ng-repeat="question in instructionSet.questions"
的一部分,instructionSet
是另一个ng-repeat
的一部分,依此类推。
如果只有一个元素可以选择,最好有一个参数,因此保存状态而不是将其放在每个对象上。
<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>
非常简单 - 在重复作用域上方声明一个变量,假设selectedIndex
并将其设置为 -1
$scope.selectedIndex = -1;
现在,如果尚未单击,则将其设置为单击时所选索引,如果已选择,则将其设置为-1
:
ng-click="setIndex($index)">
和方法:
$scope.setIndex = function(idx) {
$scope.selectedIndex = $scope.selectedIndex === idx ? -1 : idx;
}