我正在构建简单的测验应用,我想将correct
或wrong
类添加到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>
此条件为我列表中的所有元素指定“正确”。我想将这个类只添加到一个非常正确的类中。
答案 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;选择的答案。