В вашем файле .ts сначала создайте новый массив, каждый элемент этого массива будет иметь строку watchLaterIcon, а его длина должна быть такой же, как у массива movies, поэтому добавьте цикл for в конструктор:
imageSources: string[] = [];
constructor()
{
for(let i=0; i<this.movies.length; i++)
{
this.imageSources[i] = watchLaterIcon;
}
}
Затем создайте новый компонент для кнопки «ButtonComponent» и отредактируйте файл .html, чтобы ngFor перебирал компонент кнопки и передавал источники изображений в качестве входных данных для компонента:
<table>
<tbody>
<tr *ngFor='let imageSource of imageSources>
<td>...some values here...</td>
<td>
<span>
<app-button [inputImageSrc]="imageSource"><app-button>
</span>
</td>
</tr>
</tbody>
</table>
Компонент кнопки .HTML-файл:
<button (click)="getSelected()">
<img src={{imgSrc}} alt="icon">
</button>
Компонент кнопки .Ts файл:
emptyWatchLaterIcon: string = '/assets/emptyWatchLater_icon.png';
@Input('inputImageSrc') imgSrc: string; // get input and use as 'src' in the img tag
getSelected() // Change the image source, applies only to the clicked button of the ngFor loop.
{
this.imgSrc = emptyWatchLaterIcon;
}