在Html中:
<form [formGroup]="myform">
<table>
<tr *ngFor="let item of items">
<td>
<input type="text" [(ngModel)]="item.name" formControlName="item.name"/>
</td>
</tr>
</table>
<button (click)="addRow()">ADD Row </button>
</form>
最初我有一个数据,所以我在文本框中绑定它。当我单击“添加”按钮时,我需要添加空文本框行。
在component.ts中
ngOninit(){
this.myform= formBuilder.group([
item.name : new FormControl('',Validators.Required);
]);
}
我不知道如何在我的场景中使用formArray。
答案 0 :(得分:0)
列出表格中的数据 (你的HTML似乎很好)
<强> HTML 强>
<form [formGroup]="myform">
<table>
<tr *ngFor="let item of items">
<td>
<input type="text" [(ngModel)]="item.name" formControlName="item.name"/>
</td>
</tr>
</table>
<button (click)="addRow()">ADD Row </button>
</form>
TS代码
使用此TS代码,您将能够向表中添加新行,并且将自动应用表单控件。
addRow(){
items.push({'name' : ''});
}
答案 1 :(得分:0)
试试这个代码段
<强>模板强>
<form [formGroup]="testForm">
<div formArrayName="properties">
<div *ngFor="let prop of testForm.get('properties').controls; let i = index" >
<input type="text" class="form-control" [formControlName]="i">
</div>
</div>
</form>
<br>
<button (click)="addFormField()">Add Field</button>
<强>组件强>
import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
export class App {
name:string;
testForm: FormGroup;
ngOnInit() {
this.testForm = this.fb.group({
properties: this.fb.array([])
});
}
constructor(private fb: FormBuilder) { }
addFormField() {
<FormArray>this.testForm.get('properties').push(new FormControl());
}
}
在理解了代码步骤之后,尝试将其添加到表中。