Я реализую звездный рейтинг с помощью пользовательского шаблона рейтинга. Я хочу изменить цвет выбранных звезд в зависимости от выбранного в данный момент количества. Например, 4 выбранные звезды = зеленые, 3 выбранные звезды = оранжевые, ...
Я видел в документации ng-bootstrap, что интерфейс StarTemplateContext имеет два свойства fill
и index
. Основываясь на этих свойствах, я смог изменить цвет по определенному индексу. Например, первая звезда зеленого цвета, вторая звезда оранжевого цвета.
<ngb-rating [starTemplate]="t" [rate]=data.stars></ngb-rating>
<ng-template #t let-fill="fill" let-index="index">
<span class="star" [class.full]="fill === 100" [class.green]="index === 4" [class.orange]="index === 3">
<i class="fas fa-square square-star"></i>
</span>
</ng-template>
Но теперь я хочу, чтобы все выбранные звезды были одного цвета. Есть идеи, как это реализовать?