我有一个反应形式:
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
,但这对我没有帮助。
那么,我的错误在哪里,或者可能有另一种方法来解决我的问题?