Angular中如何批量将settings对象值赋值给FormGroup?
批量给Angular FormGroup赋值的方法
你可以直接使用Angular FormGroup提供的patchValue()或setValue()方法批量赋值,不用逐个设置每个控件的值。
具体实现代码
你的settings对象键和modelForm的控件名称完全一一对应,直接把整个对象传入方法即可:
// 初始化表单后执行批量赋值 this.modelForm = this.setFormGroup(); // 方案1:用patchValue(推荐,支持部分字段赋值) this.modelForm.patchValue(this.settings); // 方案2:用setValue(要求对象包含所有控件的键,否则会报错) // this.modelForm.setValue(this.settings);
两种方法的区别
patchValue():可以只传入部分字段,未传入的控件保持原有值,灵活性更高setValue():必须传入所有控件对应的键值对,否则会抛出错误,适合需要确保所有字段都被赋值的场景
你的场景里settings包含了modelForm的所有控件键,所以两种方法都能正常工作,用patchValue()会更稳妥。
内容的提问来源于stack exchange,提问作者Tim Launders
相关产品推荐
相关产品推荐

