Angular未更新单选按钮选择

Angular not updating radio button selection

本文关键字:选择 单选按钮 更新 Angular      更新时间:2023-09-26

我有一个小的测试应用程序,我正在将其转换为angular。它显示一个问题,以及您通过单选按钮选择的4个可能的答案。您可以移到下一个问题,也可以回到原来的问题,您的选择会被记录下来。

当我想回到问题时,我在重新选择单选按钮时遇到问题。按钮的属性表示我已将其更改为true,但没有指示。只有当我回到第一个问题,并尝试第二次返回时,它才会正确更新。我假设,由于它不能再后退,并且可以再次运行,所以按钮正在进行一些更新,这就是它所做的。

额外的空间似乎是堆栈溢出的格式化问题,它不在我的实际代码库中。我已经删除了它。

如有任何帮助,我们将不胜感激。代码现在很粗糙,因为我只是把所有东西都扔进了控制器。稍后会有一些结构。

HTML

<div ng-controller="mainController" class="col-md-5 col-md-offset-5">
    <div>        
{{quizQuestions}}
    </div>
    <div ng-repeat="answerswers in quizAnswers">
        <label>{{answers}}</label>
        <input class="rad" type="radio" name="answerswer" ng-click="markAnswer($index)">
    </div>
    <div>
        <label>Change the question</label>
        <input type="button" ng-click="decrease()" value="Back">
        <input type="button" ng-click="increase()" value="Next">
    </div>
</div>

角度

$scope.adder = 0;
$scope.answer = [];
$scope.markAnswer = function(index) {
        $scope.answer.splice($scope.adder,1,index);
    };
$scope.display = function(number) {
    $scope.quizQuestions = allQuestions[number].question;
    $scope.quizAnswers = allQuestions[number].choices;
};
$scope.decrease = function() {
    if($scope.adder === 0) {
    } else {
        $scope.adder -= 1;
        $scope.display($scope.adder);
    }
    document.getElementsByClassName('rad')      [$scope.answer[$scope.adder]].checked = true;
};
$scope.display($scope.adder);

"rad"ng-click 中存在语法错误

<input class="rad" type="radio" name="answerswer" ng- click="markAnswer($index)">

你需要去掉ng-click 之间的空间

对于您所做的工作,您应该查看ng-model指令。介意看看你的markAnswer()函数吗?