我使用Angular2来限制文本框中的复制和粘贴.但是我如何编写自定义指令,以便它可以很容易地应用于所有文本字段.
<ion-input formControlName="confirmpass" type="tel" (cut)="$event.preventDefault()" (copy)="$event.preventDefault()" (paste)="$event.preventDefault()"></ion-input>
解决方法
您可以在指令中使用
HostListener来捕获
cut,paste和
copy事件,然后使用preventDefault().这是一个例子
import { Directive,HostListener } from '@angular/core'; @Directive({ selector: '[appBlockCopyPaste]' }) export class BlockCopyPasteDirective { constructor() { } @HostListener('paste',['$event']) blockPaste(e: KeyboardEvent) { e.preventDefault(); } @HostListener('copy',['$event']) blockCopy(e: KeyboardEvent) { e.preventDefault(); } @HostListener('cut',['$event']) blockCut(e: KeyboardEvent) { e.preventDefault(); } }
像这样使用指令
<ion-input appBlockCopyPaste formControlName="confirmpass" type="tel"></ion-input>