【发布时间】:2017-03-24 15:48:13
【问题描述】:
我在从表单中获取 ID 时遇到问题。
this.myForm 看起来像这样 @Input() public myForm: FormGroup;
它是来自另一个 .ts 文件的输入
这是表单的结构:
我的表格
- 名字
- 姓氏
- 电子邮件
——标签(FormArray)
---id (FormGroup)
我想访问 id 并用一个用户的所有标签填充 this.selectedTagList,这就是我想要做的:
const control: FormArray = <FormArray>this.myForm.controls[ 'tags' ];
control.controls.forEach(tag=> {
this.selectedTagList.push(this.tagList.find(tag.value.id));
});
如果我 console.log(this.myForm) 我得到这个结构:
console.log(control.controls), 'controls' 来自上面的代码:
但是当我执行 console.log(control.controls.length) 时,我得到 0。或者当我执行 console.log(control.controls[0]) 时,我得到未定义。
我不知道 FormGroup 对象去了哪里,也不知道为什么它说 Array[0] 里面有 4 个 FormGroup 对象。
【问题讨论】:
-
能否添加更多代码,请像表单创建部分一样,它会比屏幕截图更有帮助。
-
尝试和 John 说的一样,你拥有的不是数字索引数组,而是具有命名索引的对象(如关联数组)。 w3schools.com/js/js_arrays.asp 转到链接中的“关联数组”和“数组和对象之间的区别”部分
标签: angular angular2-forms angular2-formbuilder