首页 > 解决方案 > 在模板中传递动态 formControl 值

问题描述

单击按钮时如何传递确切的文本区域值?

<form novalidate [formGroup]="simulationForm">
     <div  formArrayName="answer_key"  *ngFor="let other of simulationForm.get('answer_key').controls; let i = index" class="form-group">

          <div [formGroupName]="i" class="mat-form-field--inline">
                    {{i + 1}}.
                    <mat-form-field>
                        <textarea matInput placeholder="Sentence" id="sentence" formControlName="sentence" readonly="true"></textarea>
                    </mat-form-field>
          <button class="btn btn-success" type="button" (click)="openDialog()">Add</button>
                </div>  
          </div>
</form>

当每个按钮被点击时,想要传递每一行的句子值。

就像是,

(click)="openDialog(simulationForm.get('sentence').value)"

或者

(click)="openDialog(simulationForm.get('answer_key').controls['sentence'].value)"

标签: angulartypescriptangular-reactive-formsngfor

解决方案


(click)="openDialog(i)"

openDialog(index:number)
{
   const text=(simulationForm.get('answer_key') as FormArray)
       .at(index).get('sentence').value

   //or 
   const text=(simulationForm.get('answer_key') as FormArray)
       .at(index).value.sentence

   //I'm not sure about
   const text=simulationForm.value.answer_key[index].sentence


}

推荐阅读