好的,所以这是我的设置我有以下数组:
answers = [answer1, answer2]
使用这些我执行以下操作:
<form>
<div class="col-xs-12" ng-repeat="answer in component.question.answers">
<div class="col-xs-1" style="width: 1%">
<div class="radio">
<label class="i-checks">
<input type="radio" name="a" ng-model="answer.is_correct">
<i></i>
</label>
</div>
</div>
<div class="col-xs-11">
<input type="text" ng-model="answer.answer" class="form-control" placeholder="Svar">
</div>
</div>
</form>
现在input[radio]
位于同一form
内。我的目标是,当我将其中一个设置为选中时,应更新两个answer
对象,以便只有一个对象具有值is_correct = true
然而现在发生的事情是,如果我点击第一个,然后第二个值都有is_correct = true
那我该怎么办?
答案 0 :(得分:1)
单选按钮用于在单个字段的不同值之间进行选择,或者在Angular的情况下,单个模型。逻辑解决方案是选择正确的答案:
<input type="radio" ng-model="component.question.correctAnswer" ng-value="answer">
如果你真的需要设置一个标志,你可以通过观察者轻松实现这一目标:
$scope.$watch('component.question.correctAnswer', function(correctAnswer) {
component.question.answers.forEach(function(answer) {
answer.is_correct = answer === correctAnswer ? true : false;
});
});