2017-11-17 13 views
0
// setup the form 
const formGroup = {}; 
for (const prop of Object.keys(this.dataObject)) { 
    try { 
    const cpv = this.dataObject[prop].cpv; 
    const value = this.dataObject[prop].value; 
    formGroup['componentDetails'] = new FormArray([ 
     new FormControl({'cpv': cpv, 'value': value}) 
    ]); 
    } catch (e) { 
    console.log('Exception in Form setup - ' + e); 
    } 
} 

私のフォーム用のフォームコントロールとフォームの配列は上記のコードがあります。生成されたJSONは、valueプロパティを追加しません:(角型オブジェクトの配列が機能していません

私は何を得る:。

"componentDetails": [ { "cpv": "CPV_1" } ]

私はすべてのエラーが表示されない

"componentDetails": [ { "cpv": "CPV_1", "value": "test value" } ]

を必要としたものでしたもし誰かが同じ問題に直面していて、それがどうやって解決されたのか疑問に思っていますか?

+0

さて、あなただけの1 formcontrolを作成している、valueは別のFormControlでなければならないであろうestedあなたが明らかに2つを必要とするとき。それは最初の一見で少なくとも問題です:) – Alex

+0

フォームを提出すると、cpvと値がペアとして一緒に移動しなければなりません... [{'cpv': 'cpv1'、 'value': 'test1'}、{' cpv ':' cpv2 '、' value ':' test2 '}] –

+0

@DavidJeyathilak次に、それらをオブジェクトとして作成できます。 – Milo

答えて

1

As @ AJT_82 sugg

formGroup['componentDetails'] = new FormArray([ 
    new FormControl({'cpv': cpv}), 
    new FormControl({''value': value}) 
]); 

はEDIT:彼らはペアで行く必要がある場合:

const cpv = this.dataObject[prop].cpv; 
const value = this.dataObject[prop].value; 
let pair: any = { 'cpv': cpv, 'value': value }; 

formGroup['componentDetails'] = new FormArray([ 
    new FormControl(pair) 
]); 

参照してください:https://angular.io/api/forms/FormArray

+0

私はこれを試みたが、うまくいかなかった:( –

関連する問題