Вам не нужно добавлять id
или менять «вручную» метку кнопки.
Вы можете добавить флаг, чтобы узнать, была ли ссылка скопирована или нет внутри вашей существующей модели. Например:
export type Link = {
full: string,
copied: boolean
}
Затем внутри вашего кода вы можете установить этот флаг на true
:
copyToClipboard(link: Link) {
link.copied = true;
...
}
В шаблоне просто используйте этот флаг, чтобы адаптировать метку кнопки, а также установить определенный c класс для кнопки (или в другом месте):
<div *ngFor="let link of links">
<p>{{link.full}}</p>
<button (click)="copyToClipboard(link)" [class.copied]="link.copied">
{{ link.copied ? 'Copied' : 'Copy' }}</button>
</div>
.copied {
background-color: green
}