Ваше текущее решение не работает, потому что getElementById
возвращает только один (первый найденный) элемент с заданным идентификатором. Кроме того, выполнение таких запросов DOM определенно не является угловым способом.
Вместо этого вам нужно изменить определение кнопки на что-то вроде этого:
<button class="mdc-icon-button material-icons" [style.color]="content.isSelected ? '#3DA2DA' : 'FFFFFF'" (click)="addToSummary(content)">grade</button>
И мы также изменили наш метод addToSummary
, чтобы он выглядел следующим образом:
addToSummary(content){
content.isSelected = true;
}
Итак, основная идея такова:
- Каждый элемент в вашем массиве
acts
имеет свойство isSelected
- Если для этого свойства установлено значение true, звезда окрашивается в синий цвет
- В методе
addToSummary
мы устанавливаем для свойства isSelected
значение true
- Мы обрабатываем этот «угловой путь» с помощью
[style.color]
, который позволяет нам определить простое выражение для переключения между белым и синим цветом.