在Angular 5中,通过HTML更新formControl不会更新值,只会更新控件。为了解决这个问题,你可以使用patchValue()
方法或者setValue()
方法来手动更新formControl的值。
下面是一个使用patchValue()
方法的示例代码:
import { Component } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {
myForm: FormGroup;
constructor() {
this.myForm = new FormGroup({
name: new FormControl('')
});
}
updateValue() {
this.myForm.patchValue({
name: 'New Value'
});
}
}
在上面的示例中,我们创建了一个名为myForm
的FormGroup,并在其中添加了一个名为name
的FormControl。在模板中,我们使用formControlName
指令将FormControl绑定到了一个输入框中。
当用户点击"Update Value"按钮时,updateValue()
方法会被调用。在这个方法中,我们使用patchValue()
方法来更新name
的值为"New Value"。
这样,当用户更新了输入框中的值时,formControl的值也会相应地更新为输入框中的值。