Я хочу добавить динамические элементы, используя реактивные формы в угловых. Я перехожу по этой ссылке: https://alligator.io/angular/reactive-forms-formarray-dynamic-fields/.
Я делаю точно такую же ссылку. Но я получаю ошибку.
Ниже приведен код:
файл ts:
orderForm: FormGroup;
items: FormArray;
constructor(private formBuilder: FormBuilder ) { }
ngOnInit() {
this.orderForm = this.formBuilder.group({
iems: this.formBuilder.array([ this.createItem() ])
})
}
createItem(): FormGroup {
return this.formBuilder.group({
checked: ''
})
}
addDynamicCheckBox() {
this.items = this.orderForm.get('items') as FormArray;
this.items.push(this.createItem());
}
файл шаблона:
<div [formGroup]="orderForm">
{{ orderForm.controls.items.controls }}
<div class="row" formArrayName="items" *ngFor="let item of orderForm.get('items').controls; let i=index">
<div class="col-10" [formGroupName]="i">
<mat-checkbox formControlName="checked"></mat-checkbox>
</div>
<div class="col-2" style="float: right">
<button mat-raised-button>Remove</button>
</div>
</div>
</div>
Редактировать
Я хочу установить значения элементов управления formArray. Я не могу видеть какую-либо ценность. Просто установите флажок на дисплее. Следующий код, который я сделал:
ts file
setCheckBoxValue() {
this.items = this.orderForm.get('items') as FormArray;
this.data.data.forEach((element) => {
this.items.push(this.formBuilder.group({
checked: true,
selected: element
}))
});
}
HTML-файл
<div [formGroup]="orderForm">
<div class="row" formArrayName="items" *ngFor="let item of orderForm.get('items').controls; let i=index">
<div class="col-8" [formGroupName]="i">
<mat-checkbox formControlName="checked">{{item.checked}}</mat-checkbox>
</div>
</div>
check box value: {{ orderForm.get('items').controls.checked }}
</div>
``