ng-repeat将条件类添加到一个元素

时间:2015-03-23 15:00:41

标签: javascript jquery css angularjs angularjs-ng-repeat

我正在构建简单的测验应用,我想将correctwrong类添加到ng-repeat内的元素中以用于CSS样式。

JS:

$scope.checkAnswer = function (answer) {
        if (answer == $scope.answer)
        {
            $scope.score++;
            $scope.correctAns = true;
            $scope.nextQuestion();
            
        } else {
            $scope.correctAns = false;
        }
    };

我试图使用ng-class表达而没有运气:

<ul id="options">
  <li ng-repeat="option in options" id="answer_{{$index}}" ng-class="{'correct' : correctAns, 'wrong' : !correctAns}">
    <img data-id="{{$index}}" ng-src="{{img[$index]}}" ng-click="checkAnswer({{$index}})">
  </li>
</ul>

此条件为我列表中的所有元素指定“正确”。我想将这个类只添加到一个非常正确的类中。

2 个答案:

答案 0 :(得分:0)

“ng-repeat” - 指令使用“隔离范围”方面,这意味着它会影响(复制到本地范围)您的原始“correctAns”变量,如果您尝试从本地范围修改它,实际上您执行此操作父范围值不会更改。您有以下解决方案: 不要使用原始值,而是使用object.property - 在您的情况下,它可以是answer.correct

请查看以下详细答案:Directive isolate scope with ng-repeat scope in AngularJS

答案 1 :(得分:0)

这是我的例子,基于我对要求的理解。希望它可以提供帮助。

https://jsfiddle.net/5zoh6L7d/

我有&#34;班&#34;每个选项的信息,如:

  $scope.options = [
    {key: 1, value: "Earth", class: ""},
    {key: 2, value: "Fire", class: ""},
    {key: 3, value: "Air", class: ""},
    {key: 4, value: "Water", class: ""},
  ];

当用户选择答案时,我会检查并更改&#34;类&#34;选择的答案。