Я не уверен насчет того, как вы кодируете в своих методах. Но я думаю, что в идеале ваш код выглядит как -
<mat-radio-button class="option" [value]="option.optionValue" disableRipple="true"
[checked]="question.selectedOption == option"
[ngClass]="{'is-correct': isCorrect(option.optionValue),
'is-incorrect': !isCorrect(option.optionValue)}">
<li>{{ option.optionText }}</li>
<mat-icon class="feedback-icon" *ngIf="isCorrect(option.optionValue)">done</mat-icon>
<mat-icon class="feedback-icon" *ngIf="!isCorrect(option.optionValue)">clear</mat-icon>
</mat-radio-button>
, а ваш метод должен выглядеть следующим образом -
isCorrect(option: number): boolean {
this.selectedOption = option;
return option === this.question.answer
}
PS: нет необходимости добавлять обработчик кликов, если вы уже добавлены change
мероприятие. Просто установите значение в обработчике изменений, или вы можете использовать привязку модели, используя ngModel
, если хотите.