Я занимаюсь разработкой приложения для викторины с 4 вариантами ответа на заданный вопрос. Я уже написал функцию, чтобы проверить, является ли выбранный вариант правильным ответом или неправильным. У меня возникают проблемы с определением того, какой параметр был выбран пользователем, и я хочу стилизовать его с помощью CSS как - Если выбран неправильный параметр, выбранный вариант параметр станет красным, а правильный - зеленым, и наоборот.
HTML:
<div *ngFor="let actiVar of activeArray ;let j = index" >
{{actiVar.QuestionID}}.{{actiVar.Question}}
<br>
<br>
<button type="button" name="s" id="one" (click)="filterAnswer(actiVar.OP[j+0]) ; getColor(actiVar.OP[j+0])" [ngStyle]="{backgroundColor: buttonColor}" [disabled]="permissionoptions">{{actiVar.OP[j+0]}}</button>
<br>
<br>
<button type="button" name="s" id="two" (click)="filterAnswer(actiVar.OP[j+1]) ; getColor(actiVar.OP[j+1])" [ngStyle]="{backgroundColor: buttonColor}" [disabled]="permissionoptions">{{actiVar.OP[j+1]}}</button> <br>
<br>
<button type="button" name="s" id="three" (click)="filterAnswer(actiVar.OP[j+2]) ; getColor(actiVar.OP[j+2])" [ngStyle]="{backgroundColor: buttonColor}" [disabled]="permissionoptions">{{actiVar.OP[j+2]}}</button> <br>
<br>
<button type="button" name="s" id="four" (click)="filterAnswer(actiVar.OP[j+3]) ; getColor(actiVar.OP[j+3])" [ngStyle]="{backgroundColor: buttonColor}" [disabled]="permissionoptions">{{actiVar.OP[j+3]}}</button>
<br>
</div>
Я установил getColor
функцию щелчка мышью по выбранному параметру, но что он делает, если пользователь выбрал неправильный параметр, он переводит все 4 параметра в красный и наоборот. выбранный вариант красного цвета.
getColor(j: any) {
if (j == this.activeArray[0].isRight) {
this.buttonColor = 'green';
}
else {
this.buttonColor = 'red';
}
}
this.activeArray[0].isRight
- правильный ответ, полученный из JSON.
Я понимаю, что мне придется использовать отдельный тег id
на кнопке, чтобы узнать, какая опция была нажата, но мне не повезло найти правильную логику для stackoverflow.