Angularjs 输入收音机和 ng-repeat 问题

Angularjs input radio and ng-repeat issue

好的,这是我的设置,我有以下数组:

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 中,它们应该在同一个 form 中。我的目标是,当我将一个对象设置为选中时,两个 answer 对象都应该更新,以便只有一个对象具有值 is_correct = true

但是现在发生的情况是,如果我单击第一个,然后单击第二个,两个值都有 is_correct = true

那我该怎么办?

单选按钮用于在单个字段的不同值之间进行选择,或者在 Angular 的情况下,为单个模型选择不同的值。合乎逻辑的解决方案是 select 正确答案:

<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;
  });
});