我需要在FormBuiler中的嵌套控件中设置一个值,模型如下:
this.addAccForm = this.fb.group({
accid: ['', Validators.required],
status: '',
cyc: this.fb.array([
this.initCyc(),
])
})
initCyc() {
return this.fb.group({
cycid: ['', Validators.required],
name: ['', Validators.required],
description: ['', Validators.required],
status: ['', Validators.required],
det: this.fb.group({
dcycid: ['', Validators.required],
status: ['', Validators.required]
})
})
我需要设置一个值cycid和dcycid但我坚持它,我试图使用以下行,但它没有帮助:
this.addAccForm.patchValue({cyc: { [0]: {cycid: 1234567 }}});
//
this.addAccForm.patchValue({cyc: { [0]: { det : {dcycid: 9876543}}}});
知道它应该怎么样?
6 回答
尝试使用theese代码
另一种解决方案是
这对我有用:
以下是我解决问题的方法:
谢谢
Here is the code for working for me.
我正在使用Angular版本 "^6.0.0"
显然,这是一个较旧的条目,但这就是我处理类似情况的方式
这样的语法对我来说似乎更清晰 . 然而,一个相当简单的方法是首先简单地输出form.controls . 通过这种方式,您可以在控制台中看到您的表单包含的内容,并且基本上只是观察其结构 .
定义
FormGroup
以保存表单 .addAccForm: FormGroup
使用
FormBuilder
创建表单 .现在创建一个修补表单值的方法 . 您可以将模型作为参数传递给方法 . 或者在组件类中定义的变量 .
patchCyc()
方法将循环遍历作为参数传递的数组 . 新的FormGroup
将被推送到每个循环中的cyc FormArray
.