2017-10-08 5 views
0

ReactiveFormsでわからないエラーがあります。FormGroupとスプレッド演算子

roomsGroupからの出力varは、私が望むようにオブジェクトの配列を返します。

次に、spreading演算子を使用して、すべてのオブジェクトをroomingGroupのフォームグループに渡します。しかし、最初のオブジェクトだけが設定されます。

私はそれを動作させるために何をしなければならないのか分かりません。

export function roomingGroup (fb: any) { 
    return fb.group(
     ...roomsGroup(fb) 
    ); 
} 

function roomsGroup (fb) { 
    let output = []; 

    for (let i = 1; i < 4; i++) { 
     let nameOfProperty = 'R' + i; 

     output.push({ 
      [nameOfProperty]: fb.group({ 
       quantity: fb.group({ 
        adult: [''], 
        child: [''] 
       }) 
      }) 
     }) 
    } 

    return output; 
} 
+0

配列の代わりにオブジェクトを返しますか? – yurzui

+0

いいえ、{R1:{...}の代わりに{R1:{...}}、R2:{...}、...} – Swarovski

+0

いいえ、最初のオブジェクトのみ返します。それを試してみてください。私は何かがシンプルではないと思う。 – Swarovski

答えて

0

出力オブジェクトが必要です。だから私はオブジェクトで作業する必要があります:

let output = {}; 

for (let i = 0; i < count; i++) { 
    let nameOfProperty = 'R' + (i + 1); 

    output = (<any>Object).assign(output, { 
     [nameOfProperty]: fb.group({ 
      quantity: fb.group({ 
       adult: [''], 
       child: [''] 
      }) 
    })}) 
} 

return output; 

これは私のソリューションです。

関連する問題