2017-11-17 5 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은각형 오브젝트의 배열이 작동하지 않습니다.

내가 무엇을 얻을 :.

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

내가

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

내가 오류를 볼 수 없습니다 필요가 무엇 당신이 누구든지 똑같은 문제에 직면하고 어떻게 해결했는지 궁금합니다.

+0

그럼 당신은 단지 하나의 formcontrol를 작성, 네가 분명히 필요할 때. 그건 적어도 첫눈에 문제가있어 :) – Alex

+0

우리가 양식을 제출할 때 cpv와 값이 한 쌍으로 합쳐 져야합니다 ... [{ 'cpv': 'cpv1', 'value': 'test1'}, { ' cpv ':'cpv2 ','value ':'test2 '}] –

+0

@DavidJeyathilak 그런 다음 객체로 만들 수 있습니다. 내 편집 확인 – Milo

답변

1

As @ AJT_82 sugg ested value 다른 FormControl 될 것이다 :

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

편집 : 그들은 쌍으로 이동해야하는 경우 :

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

나는 이것을 시도했지만 작동하지 않았다. ( –