angular - 如何设置复杂 FormArray 反应形式的值
问题描述
我想将值设置为复杂的 FormArray 但 setValue 不起作用!
这是我的 component.ts :
coveragestypes : Array<ItemPolicyModel>= [{'id':'1','name':'type1'}, {'id':'2','name':'type2'}];
coveragesObject: any = null;
policyForm = new FormGroup({
policyNumber: new FormControl('', Validators.required),
damageNumber: new FormControl('', Validators.required),
coveragesObject: new FormArray([]),
hiddenControl: new FormControl(''),
policyConditions: new FormControl(''),
includeVat: new FormControl('')
})
ngOnInit() {
this.addCheckboxes();
if(this.intake.policyInfo!=undefined){
this.policyForm.get('policyNumber').setValue(this.intake.policyInfo.policyNumber);// work fine
this.policyForm.get('damageNumber').setValue(this.intake.policyInfo.damageNumber);//work fine
this.policyForm.get('coveragesObject').setValue(this.intake.policyInfo.coveragesObject);
console.log("coveragesObject in the form", this.policyForm.get('coveragesObject').value)
// it gives me [{'id':'1','name':'type1','coverageAmount':'22',checked:true}] but it is not setted in the HTML
this.policyForm.get('policyConditions').setValue(this.intake.policyInfo.policyConditions);//work fine
this.policyForm.get('includeVat').setValue(this.intake.policyInfo.includeVat);//work fine
}
}
addCheckboxes() {
let formGroups: FormGroup[] = this.coveragestypes.map(coverage => {
return new FormGroup({
id: new FormControl(coverage.id),
name: new FormControl(coverage.name),
CoverageAmount: new FormControl("", Validators.pattern(/^-?(0|[1-9]\d*)?$/)),
checked: new FormControl(false)
});
});
this.coveragesObject = new FormArray(formGroups);
this.policyForm.setControl('coveragesObject', this.coveragesObject);
}
我不知道为什么没有设置 FormArray!谁能帮我 ?
解决方案
您的代码工作正常,您只需要删除代码的以下部分
this.policyForm
.get("coveragesObject")
.setValue(this.intake.policyInfo.coveragesObject);
基本上表格已经在addCheckboxes()
函数中设置好了
推荐阅读
- asp.net-core - 登录成功后AuthenticationState总是返回null
- opengl - 是否可以只渲染 gluLookAt 看到的剪辑区域?
- javascript - 使用 mongoimport 实用程序时出现 JSON 错误
- python - 如何使用 Pyspark 将列类型从“数组”更改为“字符串”?
- laravel - laravel : countall tabkle data when get data via paginate funcation
- java - 如何在滚动时使值固定并在中心突出显示
- svelte - 当 Svelte 中的订阅存储发生值更改时如何触发函数?
- json - 为什么在 bash 的单个数组元素中获取 jq 的所有结果
- python - 使用 TF 1.x 中的回调将整个模型保存为 TF SavedModel?
- python - 带有 Pandas 的 Python 中的类别(特殊情况)