これは基本的にフォームである私のhtmlコードです。
<form [formGroup]="calculatedForm" fxLayout="column" fxLayoutGap="15px" fxLayoutAlign="start space-betwen">
<label for="category">CATEGORY</label>
<app-toggle-button-group
[items]="categories"
[selectedItem]="getselectedCategory()"
(valueChange)="updateCategory($event)"
[disableButtons]="calculatedForm.value.system">
</app-toggle-button-group>
<label for="input_interval">INTERVAL</label>
<app-toggle-button-group
[items]="inputIntervals"
[selectedItem]="getselectedInterval()"
(valueChange)="updateInterval($event)"
[disableButtons]="calculatedForm.value.system">
</app-toggle-button-group>
<label for="aggregation">AGGREGATION</label>
<app-toggle-button-group
[items]="aggregations"
[selectedItem]="getselectedAggregation()"
(valueChange)="updateAggregation($event)"
[disableButtons]="calculatedForm.value.system">
</app-toggle-button-group>
<app-kpi-unit
[selectedUnitID]="selectedUnitId()"
(changedUnitID)= "selectUnit($event)"
[disableSelect]="calculatedForm.value.system">
</app-kpi-unit>
</form>
これはコントローラーの私のフォームプロパティです
calculatedForm = this.formBuilder.group({
id: new FormControl(''),
identifier: new FormControl(''),
category: new FormControl('', [Validators.required]),
aggregation: new FormControl(null, [Validators.required]),
input_interval: new FormControl('', [Validators.required]),
operator: new FormControl('', [Validators.required]),
unit_id: new FormControl(null),
org_unit: new FormControl('', [Validators.required]),
system: new FormControl(false),
deleted: new FormControl(false),
assignedKpiId: new FormControl(null)
});
HTMLコードでわかるように、コンポーネントによって発行されたイベントのメソッドを使用して、フォームコントロールを更新しています
updateCategory(category: buttonGroupType) {
this.calculatedForm.controls['category'].patchValue(category.name);
}
しかし、私の要件は、メソッドを使用する代わりに formcontrolName を使用してバインドすることです。更新方法を回避することは可能ですか