我有一个mat radio组组件,它还呈现一个表单字段列表
<form *ngIf="myRatesForm.controls.items.controls.length > 0" [formGroup]="myRatesForm">
<mat-radio-group formArrayName="items">
<div [formGroupName]="i" *ngFor="let myRate of myRatesForm.controls.items.controls; let i = index">
<mat-radio-button [checked]="myRate.isFavorite" formControlName="isFavorite" [value]="myRate">
<div class="flex">
<mat-form-field appearance="outline">
<input formControlName="name" matInput placeholder="Taux" />
</mat-form-field>
<div (click)="inputFocus($event)">
<mat-form-field appearance="outline">
<input formControlName="rateValue" matInput placeholder="Taux" />
</mat-form-field>
</div>
</div>
</mat-radio-button>
</div>
</mat-radio-group>
</form>
在我的ts文件中,我正在创建一个动态的formArray
itemsForm: FormArray = this.fb.array([]);
myRatesForm = new FormGroup({
items: this.itemsForm,
});
constructor(private store: Store, private pricesSelector: PricesSelector, private fb: FormBuilder) {}
myRates: MyRates[] = [];
subscription$: Subscription = new Subscription();
favoriteRate: MyRates;
ngOnInit(): void {
this.subscription$ = this.store.select(this.pricesSelector.getPriceTaxValue).subscribe(data => {
this.myRates = data.myRates;
this.myRates.map(rate => {
this.myRatesForm.controls.items.push(
this.fb.group({
name: [rate.name, Validators.required],
rateValue: [rate.rateValue, Validators.required],
isFavorite: [rate.isFavorite],
})
);
});
});
}
实际上Name和rateValue formControl正在工作.
但radioButton isFavorite不工作.我得到了这个错误
NG01203:表单控件路径没有值访问器:'items—2—>> 是最喜欢的.了解更多
我认为becauseFormControlName
不是设置在mat-radio-group
有没有办法做到?