Solución 1: copie cualquier texto
HTML
<button (click)="copyMessage('This goes to Clipboard')" value="click to copy" >Copy this</button>
archivo .ts
copyMessage(val: string){
const selBox = document.createElement('textarea');
selBox.style.position = 'fixed';
selBox.style.left = '0';
selBox.style.top = '0';
selBox.style.opacity = '0';
selBox.value = val;
document.body.appendChild(selBox);
selBox.focus();
selBox.select();
document.execCommand('copy');
document.body.removeChild(selBox);
}
Solución 2: copiar desde un TextBox
HTML
<input type="text" value="User input Text to copy" #userinput>
<button (click)="copyInputMessage(userinput)" value="click to copy" >Copy from Textbox</button>
archivo .ts
/* To copy Text from Textbox */
copyInputMessage(inputElement){
inputElement.select();
document.execCommand('copy');
inputElement.setSelectionRange(0, 0);
}
Demo aquí
Solución 3: Importe una directiva de terceros ngx-clipboard
<button class="btn btn-default" type="button" ngxClipboard [cbContent]="Text to be copied">copy</button>
Solución 4: Directiva personalizada
Si prefiere usar una directiva personalizada, consulte la respuesta de Dan Dohotaru, que es una elegante solución implementada con ClipboardEvent
.