2016-07-22 102 views
1

是否有直接的方法來實施輸入的實時消毒/操作?Angular 2輸入消毒

下面是一個例子使用的情況下,剝離非字母字符:

<input #fooControl="ngModel" 
     name="foo" 
     type="text" 
     [ngModel]="foo" 
     (ngModelChange)="foo = sanitize($event)" 
     pattern="[a-zA-Z]*" /> 

-

sanitize(val) { 
    return val.replace(/[^a-z]/ig, ''); 
} 

http://plnkr.co/edit/W80l2ph8sI8WvCpFkR7a?p=preview

這種方法幾乎適用,但是,當一個新的消毒模式值等於以前消毒的模型值,輸入值本身不更新,顯示不衛生的字符。

我已經嘗試過使用https://github.com/msafi/text-mask,但是值更改是通過DOM操作完成的,並且與表單驗證不兼容。

這似乎是一個常見的要求,我很驚訝,它還沒有原生指令。任何建議表示讚賞,謝謝!

回答