表单

时间:2017-03-24 15:48:14

标签: angular angular2-forms angular2-formbuilder

我从表单中获取ID时遇到问题。

this.myForm看起来像@Input()public myForm:FormGroup;

它是另一个.ts文件的输入

这是表格的结构:
myForm会
- 名字
- 姓氏
- 电子邮件    
--Tags(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));
});

如果我控制台.log(this.myForm)我得到这个结构:
this.myForm

console.log(control.controls),来自上面代码的'controls':
enter image description here

但是当我执行console.log(control.controls.length)时,我得到0.或者当我执行console.log(control.controls [0])时,我得到了未定义。

我不知道FormGroup对象在哪里,或者为什么它会在其中显示包含4个FormGroup对象的Array [0]。

2 个答案:

答案 0 :(得分:0)

尝试 的console.log(this.myForm.controls [ 'ID']);

答案 1 :(得分:0)

尝试和John说的相同,你所拥有的不是数字索引数组,但是你有一个带有命名索引的对象(比如关联数组)。

在JavaScript中,数组使用编号索引。 在JavaScript中,对象使用命名索引。名称索引与关联数组相同。

有关详细信息,请参阅:https://www.w3schools.com/js/js_arrays.asp