立即更新Angular5表单

时间:2017-12-07 15:52:55

标签: angular angular-reactive-forms

我有一个反应形式:

this.searchForm = this.formBuilder.group({
  query: [ null, [Validators.required] ]
});

我更新表单值的onPaste方法,但实际上它不会更新HTML输入值,直到我将焦点更改为输入。

constructor(
    private formBuilder: FormBuilder,
    private ref: ChangeDetectorRef
  ) { }

onPaste(event: any): void {
    const pastedQuery = event.clipboardData.getData('text/plain');

    const formattedQuery = pastedQuery
      .split(/,?[\r\n\t]+\s?/).join(', ')
      .replace(/,\s?$/g, '');

    this.searchForm.patchValue({
      query: formattedQuery
    });

    this.ref.detectChanges();
  }

我这样称呼onPaste方法:

<input formControlName="query" type="search" (paste)="onPaste($event)">

我发现了这个问题Angular FormGroup won't update it's value immediately after patchValue or setValue并尝试detectChanges,但这对我没有帮助。

那么,我的错误在哪里,或者可能有另一种方法来解决我的问题?

0 个答案:

没有答案