Angular不更新单选按钮选择

时间:2015-03-22 20:11:05

标签: javascript angularjs

我有一个小的测验应用程序,我正在转换成角度。它显示一个问题,以及通过单选按钮选择的4个可能答案。您可以转到下一个问题或回到原始问题,并注明您的选择。

当我想回到问题时,我在重新选择单选按钮时遇到了问题。按钮的属性表明我已将其更改为true,但未指示。只有当我回到第一个问题并尝试再次返回时才会正确更新。我假设,因为它无法进一步退回,并且可以再次运行,对按钮进行了一些更新,这就是正在做的事情。

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

非常感谢任何帮助。现在代码很粗糙,因为我把所有东西扔进了控制器。一些结构将在稍后出现。

HTML

<div ng-controller="mainController" class="col-md-5 col-md-offset-5">
    <div>        
{{quizQuestions}}
    </div>
    <div ng-repeat="answers in quizAnswers">
        <label>{{answers}}</label>
        <input class="rad" type="radio" name="answer" 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);

1 个答案:

答案 0 :(得分:0)

"rad"ng-click

中存在语法错误

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

您需要取出ng-click

之间的空格

对于你的工作,你应该查看ng-model指令。请注意你的markAnswer()功能?