angular7 - 如何在编辑输入时修补Angular中反应形式数组中的值?
问题描述
如何在编辑来自 DB 的输入值时修补 formArray 中多个输入的值?通过 实现动态输入。
--这是我的formGroup和formArray--
` this.accountsForm = new FormGroup({
'type_name': new FormControl('', Validators.required),
'state': new FormControl(true, Validators.required),
'masks': this.MaskArray,
}); `
--这是FormArray--
`onInit() {
this.MaskArray = new FormArray([]);
this.MaskArray.push(
new FormGroup({
mask: new FormControl()
})
);
`
---这个动态输入创建
`createItem() {
(<FormArray>this.accountsForm.get('masks')).push(
new FormGroup({
mask: new FormControl()
})
);
}
`
---这里出现了问题。我试图从 DB 中获取值并传递给输入,它仅适用于来自 data.rows 的数组中具有一个值的输入。如何将 data.row 中的多个值传递给 formArray 的掩码控制器——
`this.subs.add(this.sql.query(`Select t.Mask From Mid_s_Account_Type_Masks t Where Type_Id=${this.type_id} `).subscribe(data => {
this.maskObj = data.rows;
console.log(this.maskObj);
for(var i = 0; i < this.maskObj.length ; i++){
var j = 0;
for(let row of this.maskObj){
(<FormArray>this.accountsForm.controls['masks']).at(j).patchValue({
mask: row.mask,
});
j++;
console.log(row.mask);
}
console.log(j);
}
}));`
解决方案
我已经通过方法在我的应用程序中修补了 formArray 值patchModelValue
,这可以在 package.json 的帮助下@rxweb/reactive-form-validators
实现。
patchModelValue 将根据提供的服务器 JSON 对象或模型对象更新 FormGroup 内的 FormControl 的值。对于这些,您需要RxFormBuilder
在组件中导入
export class AccountComponent implements OnInit {
accountsForm : RxFormGroup
constructor(
private formBuilder: RxFormBuilder ) { }
ngOnInit() {
this.accountsForm = <RxFormGroup>this.formBuilder.group({
masks:[
{
mask:''
}]
});
}
getFormArray(){
let formarray = this.accountsForm .controls.masks as FormArray;
return formarray.controls;
}
patchvalue()
{
this.accountsForm.patchModelValue( {
masks: [{ mask: "xyz" }] });
}
}
请参考这个例子:stackblitz
推荐阅读
- r - 如何通过从随机化中排除那些包含特定单词列表的段落来从语料库中随机选择段落?
- macos - 在 Mac 上的 NSOutlineView 中更改拖动开始时的选定项目
- amazon-web-services - AWS Elastic Beanstalk (.ebextension) 配置 - IntelliJ 中的支持 .config 文件
- dataframe - 用于爆炸列的 Pyspark 数据框过滤器
- python - 在python的一行中存储一个特定的值
- rest - power bi:克隆报告未在可视化中显示数据
- java - 如何在 Play-With-Docker-Lab 中指定 java 的文件夹路径?
- c# - 使用自定义构建路径将外部 dll 添加到构建目录
- python-3.x - 如何使用按钮关闭 AIY 语音套件
- c# - 为什么数据目标找不到我的模态ID?