ну, вы можете использовать мат-флажок в одиночку. Помните, FormGroup существуют, даже если у вас нет ввода. Таким образом, вы можете использовать [флажок] и (изменить), чтобы изменить значение formControl.
<form [formGroup]="formdata">
<label>Vehicles</label><br>
<mat-radio-group>
<mat-checkbox
(change)="formdata.get('vehicles').setValue($event.checked?2:null)"
[checked]="formdata.value.vehicles==2" >2 Wheelers</mat-checkbox>
<mat-checkbox
[checked]="formdata.value.vehicles==4"
(change)="formdata.get('vehicles').setValue($event.checked?4:null)"
>4 Wheelers</mat-checkbox>
</mat-radio-group>
</form>
См. stackblitz
Обновление действительно Я не понимаю вопрос, вопрос был создать ser ie флажок и вернуть массив. Идея все та же, у нас есть массив (в данном случае объект) и FormControl. мы можем использовать собственный массив объектов
Итак,
<form [formGroup]="formdata">
<label>Vehicles</label><br>
<mat-radio-group>
<mat-checkbox *ngFor="let v of Vehicles"
[checked]="v.active"
(change)="v.active=$event.checked;setVehicles()">
{{ v.option }}
</mat-checkbox>
</mat-radio-group>
</form>
И функция "setVehicles" - это функция, которая присваивает значение форме. Как? отфильтруйте массив «Транспортные средства» и сопоставьте со значением
setVehicles()
{
this.formdata.get('vehicles').setValue(
this.Vehicles.filter(x=>x.active) //first filter
.map(x=>x.value) //second map to get only the "value"
)
}
См. new stackblitz
ПРИМЕЧАНИЕ. Я использую тот же массив объектов и добавляю свойство «active» «на лету» (это потому, что я определил массив следующим образом: any [])
ПРИМЕЧАНИЕ 2. В этом случае я присваиваю значение formControl каждый раз, когда вы меняете какой-либо флажок, это действие можно использовать только когда мы отправляем форму