Я сделал компонент рейтинга звезды, используя иконку углового материала:
<span>
<mat-icon *ngFor="let star of stars | keyvalue" (click)="check(star.key)" [ngClass]="{'checked': star.value === 'star'}">{{star.value}}</mat-icon>
</span>
И ts:
export class StarComponent implements OnInit {
@Input() star_type: String = 'star_border';
@Input() nbStar: Number = 1;
stars: Array<String> = [];
constructor() { }
ready() {
for (let i = 0; i < this.nbStar; i++) {
this.stars.push(this.star_type);
}
}
ngOnInit() {
console.log(this.stars);
}
ngOnChanges() {
this.ready();
}
check(index) {
if (this.stars[index] === 'star_border') {
for (let i = 0; i <= index; i++) {
this.stars[i] = 'star';
}
}
else {
for (let i = this.stars.length - 1; i > index; i--) {
this.stars[i] = 'star_border';
}
}
}
}
Теперь я хотел бы изменить значение star.value при наведении: Если star.value является звездой, я хочу при наведении изменить значение с помощью star_border.(Если значение звезды - star_border, я просто уже изменяю цвет)
Я понятия не имею, как это сделать.Если кто-то может мне помочь, спасибо.
Редактировать для большего разрешения:
Мой компонент отображается так:
<mat-icon>[VALUE]</mat-icon>[...]<mat-icon>[VALUE]</mat-icon>
// [VALUE] is star or star_border (change on click)
Если пользовательНаведите курсор мыши на значок мата, и значение значка мата - звезда, я хочу изменить с помощью star_hover (только в тот момент, когда пользователь наводит значок мата)
(Извините, я не очень дружу с английским)