Используйте массив вместо того, чтобы вызывать компонент снова и снова. Пожалуйста, используйте приведенный ниже код App.component. html
<code>`<form>
<app-my-radiobutton [inputList]="radioList"
(changedInput)="onValueChange($event)"></app-my-radiobutton>
</form>
<pre *ngIf="title">
{{title.form.value | json}}
`
App.component.ts
title: NgForm;
radioList = ['Male', 'Female'];
onValueChange(event) {
this.title = event
}
Myradiobutton.Component
@Input() inputList = [];
@Output() changedInput = new EventEmitter<any>();
inputData: string;
constructor() { }
ngOnInit() {}
onChange(event, form) {
this.changedInput.emit(form)
}
Myradiobutton. HTML
`<div class="container">
<form #form="ngForm">
<div *ngFor="let item of inputList; let i = index">
<input type="radio" id="{{item+i}}" name="gender" value="{{item}}"
[(ngModel)]="item" (change)="onChange($event, form)">
<label for="male">{{item}}</label><br>
</div>
</form>
</div>`
Выход
{"sex": "Male"} или {" пол ":" FeMale "}