Quiero restringir la escritura en un cuadro de texto, pero necesito pegar cualquier cosa dentro de ese cuadro de texto en Angular
Debe detener la propagación del evento si la combinación presionada es diferente a la que eligió.
Puedes hacerlo así:
public onInput(event: KeyboardEvent) { //if is pressed a different key than c or v, or the ctrl key isn't pressed stop event if (!event.ctrlKey || (event.key.toLowerCase() !== 'c' && event.key.toLowerCase() !== 'v')) { event.stopImmediatePropagation(); event.stopPropagation(); event.preventDefault(); } // else execute the default event behaviour } <input type="text" (keydown)="onInput($event)">Espero eso ayude. ^^
PD: Tienes que usar el evento keydown para que esto funcione.