如何在angular中使用反应式表单控件格式化输入?

如何在angular中使用反应式表单控件格式化输入?,angular,format,angular-reactive-forms,Angular,Format,Angular Reactive Forms,我有一个输入,如下所示,以反应式表单控件为边界: <mat-form-field appearance="fill" floatLabel="always" fxFlex> <mat-label>My field</mat-label> <input matInput #input="matInput" [formControl]="amountControl" [errorStateM

我有一个输入,如下所示,以反应式表单控件为边界:

  <mat-form-field appearance="fill" floatLabel="always" fxFlex>
    <mat-label>My field</mat-label>
    <input
      matInput
      #input="matInput"
      [formControl]="amountControl"
      [errorStateMatcher]="customMatcher"
    />
    <mat-error *ngIf="amountControl?.invalid">{{ getErrorMessage$() | async }}</mat-error>
  </mat-form-field>

我的领域
{{getErrorMessage$()| async}
现在,在用户输入一个值之后,需要对该值进行格式化,可能是在模糊或自定义键盘快捷键上,将其填充回html输入字段,并使用格式化的值更新到绑定表单控件中

我曾经考虑过使用管道,但是,似乎只有更改值的显示方式才有用,而不是将其保存回backing formControl


正确的方法是什么?

我会这样做:
HTML:

该值将在键入时更改,但在模糊时会发生变换,如果希望仅在模糊时更改该值,可以使用以下方法:

amountControl = new FormControl('', {updateOn: 'blur'});
编辑:示例

  amountControl = new FormControl('');
  transform(){
    let transformValue = this.amountControl.value - 5; // your pipe here
    this.amountControl.setValue(transformValue);
  }
amountControl = new FormControl('', {updateOn: 'blur'});