【发布时间】:2021-05-03 11:38:10
【问题描述】:
所以我有一个链接数组,每个链接都有一个复制按钮,用于将文本复制到剪贴板。单击时,“复制”按钮应该将其内部文本更改为“已复制!”并且在超时将其恢复为原始状态之前,颜色也会发生变化。
问题是当我单击一个按钮时,样式和 innerText 将应用于所有按钮。这是代码:
TS
copyState = { text: 'copy', color: '' };
onClick() {
this.copyState.text = 'Copied!';
this.copyState.color = 'hsl(258, 40%, 30%)';
setTimeout(() => {
this.copyState.text = 'Copy';
this.copyState.color = '';
}, 5000);
}
外部 API 生成链接
HTML:
<div class="result" *ngFor="let result of Links; index as i">
<p class="original_link">{{ result.original_link }}</p>
<div class="new-link">
<p>{{ result.short_link }}</p>
<button
[ngStyle]="{ 'background-color': copyState.color }"
[cdkCopyToClipboard]="result.short_link"
(click)="onClick(i)"
>
{{ copyState.text }}
</button>
</div>
【问题讨论】:
标签: javascript html arrays angular ngfor