Angular 2输入消毒

时间:2016-07-22 18:03:05

标签: angular

是否有直接的方法来实施实时清理/输入操作?

这是一个示例用例,剥离非字母字符:

<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操作完成的,并且与表单验证不兼容。

这似乎是一个常见的要求,我很惊讶它还没有本地指令。任何建议都表示赞赏,谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用UpgradeAdapterhttps://angular.io/docs/ts/latest/guide/upgrade.html)在角度2旁边运行角度1,然后使用角度1插件。