angular 6 でリアクティブ フォームを使用してフォームを作成しています。各セクションにコンポーネントを使用していますが、いくつかの問題があります。例えば:
親 ts ファイル内:
constructor(private fb: FormBuilder,
private http: Http) { }
ngOnInit() {
this.parentForm = this.fb.group({
_server: this.fb.array([this.initItemRows()]),
})
}
initItemRows() {
return this.fb.group({
// DocumentID: uuid(),
HostName: [],
IPAddress: [],
Domain: [],
OS: []
});
}
get serverForms() {
return this.parentForm.get('_server') as FormArray
}
addServer() {
const server = this.fb.group({
// DocumentID: uuid(),
HostName: [],
IPAddress: [],
Domain: [],
OS: []
})
this.serverForms.push(server);
}
deleteServer(i) {
this.serverForms.removeAt(i)
}
私が持っている親htmlで:
<div formArrayName="_server">
<table id="_server" class="table table-striped table-bordered">
<thead>
<tr>
<th>Host name</th>
<th>IP</th>
<th>Domain</th>
<th>OS</th>
<th>action</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let server of serverForms.controls; let i=index" [formGroupName]="i">
<td>
<input formControlName="HostName" class="form-control" type="text" />
</td>
<td>
<input formControlName="IPAddress" class="form-control" type="text" />
</td>
<td>
<input formControlName="Domain" class="form-control" type="text" />
</td>
<td>
<input formControlName="OS" class="form-control" type="text" />
</td>
<td class="buttonCenter">
<button mat-raised-button color="primary" class="deleteFieldButton" (click)="deleteServer(i)" type="button">delete</button>
</td>
</tr>
</tbody>
<button mat-raised-button color="primary" class="addFieldButton" (click)="addServer()" type="button">insert row</button>
</table>
</div>
しかし、親(上記)のすべてのhtmlコードを子コンポーネントに使用したい
<app-servers-section></app-servers-section>
子コンポーネント内で FormGroupDirective を使用できることはわかっていますが、親メソッドを使用する必要がある場合は機能しません。
ご意見をお聞かせください!ありがとう!