2017-03-24 1 views
0

양식에서 ID를 가져 오는 데 문제가 있습니다.양식의 Angular2 액세스 값

this.myForm은 다음과 같습니다. @Input() public myForm : FormGroup;

그것은 다른 .TS로부터 입력이 형태의 구조

파일이다
myForm을
  - FIRSTNAME
  - LASTNAME
  - 이메일
  --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)); 
}); 

내가 CONSOLE.LOG 경우 (this.myForm)
enter image description here

하지만 w : 위의 코드에서
this.myForm

CONSOLE.LOG (control.controls) '제어':이 구조를 얻을 암탉 내가 할 console.log (control.controls.length) 난 0 얻을. 또는 내가 할 때 console.log (control.controls [0]) 정의되지 얻을.

FormGroup 객체가 어디에 있는지, 또는 4 개의 FormGroup 객체가 포함 된 Array [0]가 필요한 이유는 알 수 없습니다.

+1

https://www.w3schools.com/js/js_arrays.asp 당신이 더 코드, 양식 작성 부분처럼, 그것은 스크린 샷보다 더 도움이 될 것입니다하시기 바랍니다 추가 할 수 있습니다. – n00dl3

+0

John이 말했던 것과 동일하게 시도해보십시오. 숫자 인덱스 배열이 아니고 명명 된 인덱스 (연관 배열과 같은)를 가진 객체가 있습니다. https://www.w3schools.com/js/js_arrays.asp 링크의 "연관 배열"및 "배열 및 객체 간의 차이"섹션으로 이동하십시오. – Famble

답변

0

시도해보십시오. console.log (this.myForm.controls [ 'id']);

0

John이 말했던 것과 동일하게 시도해보십시오. 숫자 색인 배열은 아니지만 이름이 지정된 색인 (연관 배열과 같은)을 가진 객체가 있습니다.

JavaScript에서 배열은 번호가 지정된 인덱스를 사용합니다. JavaScript에서 객체는 명명 된 색인을 사용합니다. 색인의 이름은 연관 배열과 같습니다. 더 많은 정보를 들어

은 다음을 참조하십시오