【发布时间】:2020-03-20 20:31:33
【问题描述】:
如何在formarray 中动态添加formcontrol(option)?我想动态地将问题添加到formarray。单击按钮后,它应该更新显示。我正在使用角度 7。
组件代码
ngOnInit() {
this.quizForm = this.fb.group({
questions: this.fb.array([]),
questions2: this.fb.array([]),
});
}
//creating formcontrol
createItem(): FormGroup {
return this.fb.group({
ques: '',
});
}
//pushing code
genField() {
this.message = true;
this.questions = this.quizForm.get('questions') as FormArray;
this.questions.push(this.createItem());
}
HTML 模板
我想在按钮点击时动态添加表单控件选项,表单控件应该在 formArrayName="questions" 内。
<form [formGroup]="quizForm" class="adjust-form">
<div formArrayName="questions"
*ngFor="let item of quizForm.get('questions').controls; let i = index;">
<div class="col-md-10 col-sm-6 mt-3 mb-3" [formGroupName]="i">
<label>{{i +1}} - {{question}} </label>
<i class="flaticon-delete"
(click)="quizForm.get('questions').controls.splice(i,1) "
style="font-size: 9px;padding-left: 80px;">
</i>
<div class="row">
<input type="text" class="form-control col-10"
[(ngModel)]="item.ques" formControlName="ques"
placeholder="Enter your question" required>
<button *ngIf="i == 0" (click)="genField()" type="button"
class="btn btn-secondary btn-elevate btn-circle btn-icon ml-4">
<i class="flaticon2-plus"></i>
</button>
</div>
<div *ngIf="item.touched && item.invalid" class="kt-font-danger text-left">
<p>required</p>
</div>
</div>
</div>
</form>
【问题讨论】:
-
能否请您也添加您的 html 文件剪辑器?因为我在 ts 文件中看不到任何错误,您是否遇到任何错误?
标签: angular angular-material angular-forms