2017-03-24 11 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)、 'コントロール':私はこのような構造を得ますhen私はconsole.log(control.controls.length)を行う。私は0を得る。または、私がconsole.log(control.controls [0])を行うとき、私は定義されていない。

FormGroupオブジェクトがどこに行きましたか、そこに4つのFormGroupオブジェクトが含まれているArray [0]という理由がわかりません。

+1

をあなたはより多くのコードを追加することができ、フォーム作成一部のように、それはスクリーンショットよりも役立つだろうしてください。 – n00dl3

+0

ジョンと同じことを試してみてください。あなたが持っているのは数値インデックス配列ではありませんが、(連想配列のような)名前付きインデックスを持つオブジェクトがあります。 https://www.w3schools.com/js/js_arrays.aspリンクの「連想配列」と「配列とオブジェクトの違い」の節に進んでください – Famble

答えて

0

お試しください console.log(this.myForm.controls ['id']);

0

ジョンと同じことを試してみてください。あなたが持っているのは数値インデックス配列ではありませんが、名前付きインデックス(連想配列など)を持つオブジェクトがあります。

JavaScriptでは、配列は番号付きインデックスを使用します。 JavaScriptでは、オブジェクトは名前付きインデックスを使用します。インデックスの名前は連想配列と同じです。詳細情報については

は、以下を参照してくださいhttps://www.w3schools.com/js/js_arrays.asp

関連する問題