そこで、onInitLifecyleでFormBuilderを初期化しました。
surveyForm: FormGroup;
ngOnInit(): void {
this.surveyForm = this.formBuilder.group({
'surveyTitle': new FormControl(null),
'surveyDescription': new FormControl(null),
'questionsDetail': this.formBuilder.array([
this.formBuilder.group({
'questionType': new FormControl('mcq'),
'question': new FormControl(null),
'choices': this.formBuilder.array([])
})
])
});
};
FormArrayのコントロールにアクセスする方法がわかりません
<form [formGroup]="surveyForm">
<input formControlName = "surveyTitle">
<textarea formControlName = "surveyQuestion"></textArea><div formArrayName='questionsDetail'>
<div [FormArrayName]="questionsDetail">
<div *ngFor="let questionDetail of surveyForm.get('questionsDetail').controls; let i=index">
<div [FormGroup]="i">
...
<div [FormArrayName]="choices">
<div *ngFor="let choice of surveyForm.get('questionsDetail').controls.get('choices').controls; let in=index">
<div [FormGroup]="in">
...
</div>
</div>
</div>
</div>
</div>
</div>
</form>
したがって、FormArray内にネストされているFormGroup内のデータを取得する構文を誰かに教えてもらえますか。formBuilderにアクセスする際にngForの正しい構文を取得できないようです。
あなたが私を助けることができれば、それは素晴らしいことです。
前もって感謝します。
以下をお試しください
<form [formGroup]="surveyForm">
<input formControlName = "surveyTitle">
<textarea formControlName = "surveyQuestion"></textArea><div formArrayName='questionsDetail'>
<div formArrayName="questionsDetail">
<div *ngFor="let questionDetail of surveyForm.get('questionsDetail')['controls']; let i=index">
<div [FormGroup]="i">
...
<div formArrayName="choices">
<div *ngFor="let choice of surveyForm.get('questionsDetail')['controls'][i].get('choices')['controls']; let in=index">
<div [FormGroup]="in">
...
</div>
</div>
</div>
</div>
</div>
</div>
</form>
私は[FormArrayName]
その行に拘束されていないことに注意してください[FormArrayName]="questionsDetail
。これはである必要がありますformArrayName="questionsDetail
。についても同じchoices
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加