ОБНОВЛЕНИЕ , как предложил Али Шахбаз сгруппировать входы для флажков
Вы можете попробовать что-то подобное в app.component.html
<div class="row" *ngFor="let test of tests">
<input type="checkbox"
id="">
{{test.name}}
<div class="btn-group">
<label class="btn btn-outline-secondary"
*ngFor="let item of test.items"
(click)="selectItem(item,test.id)"
[ngClass]="{active: isSelectedItem(item) && selectedId==test.id}">
<input
type="radio"
name="something{{test.id}}"/>
{{item}}
</label>
</div>
</div>
В app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
tests: any[];
selectedItem: any;
selectedId:number;
constructor() {
this.tests = [{
id: 1, name: 'lorem', items: ['test1', 'test2', 'test3']
},
{
id: 2, name: 'ipsum', items: ['test1', 'test2', 'test3']
},
{
id: 3, name: 'dolor', items: ['test1', 'test2', 'test3']
}]
}
selectItem(item,id) {
this.selectedItem = item;
this.selectedId=id;
}
isSelectedItem(item) {
return this.selectedItem === item;
};
}