反应形式的模型变化

时间:2018-03-20 15:37:51

标签: angular angular2-forms angular2-formbuilder

在角度模型中,表单I可以在字段中显示遮罩,并在模板中保存没有遮罩的值。我如何使用反应形式?

maskService.getCNPJ = [/\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '-', /\d/, /\d/]

maskService.unmask = (value) => value.replace(/\D+/g, '')

模型表格

<input type="tel" class="form-control" [(ngModel)]="data.cnpj" name="cnpj" [textMask]="{mask: maskService.getCNPJ, guide: false}" (ngModelChange)="data.cnpj = maskService.unmask($event)">

1 个答案:

答案 0 :(得分:0)

Angular提供了一种模式Validator:

this.myForm = this.formBuilder.group({
  phone: ['', Validators.pattern(/* your regex */)]
});

如果你想提供一个面具,你仍然可以使用自定义功能:

<input formControlName="phone" (input)="mask()">

在你的TS中:

mask() {
  // Do your masking thing
  this.myForm.get('phone').setValue('your mask value');
}