Вы смешиваете разные концепции. Материал, выбранный кратно, это элемент управления, который хранит массив (и массив объектов или массив строк). И вы перебираете простой массив элементов для выбора среди этих элементов. Нет смысла использовать FormArray или добавлять элементы в Array. Поэтому я полагаю, что у вас есть что-то вроде
meterings=[
{name:"metering 1",id:1}
{name:"metering 2",id:2}
{name:"metering 3",id:2}
]
this.mainForm = this.fb.group({
profileGroup: this.fb.group({
meterings: [[]],
from: [""],
to: [""]
})
});
.html
<div formGroupName="profileGroup" [class.active]="!show" class="inner-area">
<mat-form-field >
<mat-select fromGroupName="meterings">
<mat-option *ngFor="let metering of meterings; let i = index"
[value]="metering.value">
{{ metering.value.name }}
</mat-option>
</mat-select>
</mat-form-field>
<div>
И ваша форма может принимать значения, например
mainform={
profileGroup:{
metering:[1,2]
from:''
to:''
}
}
Другое дело, что выхотите иметь FormArray из FormControls, как вы задали в своем вопросе. Но тогда вы не будете использовать несколько
this.mainForm = this.fb.group({
profileGroup: this.fb.group({
meterings: this.fb.array([]),
from: [""],
to: [""]
})
});
.html
<div formGroupName="profileGroup" [class.active]="!show" class="inner-area">
<mat-form-field formArrayName="meterings">
<div *ngFor="let metering of meteringArray; let i = index" [formGroupName]="i">
<mat-checkbox formControlName="selected">
</mat-checkbox>
<input mat-input formControlName="name">
<input mat-input formControlName="id">
</div>
</mat-form-field>
</div>
И ваше значение может быть как
mainform={
profileGroup:{
metering:[
{id:1,name:"metering 1",true},
{id:1,name:"metering 1",false}
]
from:''
to:''
}
}