Estoy usando botones de radio NG-Bootstrap como este
<div class="btn-group btn-group-toggle" ngbRadioGroup name="radioBasic" formControlName="model"> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="1"> Left (pre-checked) </label> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="2"> Middle </label> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="3"> Right </label> </div>Y en componente
this.radioGroupForm = this.formBuilder.group({ 'model': 1, });Está funcionando bien, porque todos los botones están en una línea, pero ¿qué pasa si necesito un html diferente? Ese tercer botón estará en otro lugar en html, he intentado algo como esto
<div class="btn-group btn-group-toggle" ngbRadioGroup name="radioBasic" formControlName="model"> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="1"> Left (pre-checked) </label> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="2"> Middle </label> </div> <div class="row"> <div class="btn-group btn-group-toggle" ngbRadioGroup name="radioBasic" formControlName="model"> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="3"> Right </label> </div> </div>Pero no funciona, hay que envolverlo en un grupo??
Mirando el código fuente de ngbRadioGroup , creo que es correcto: necesitamos envolver un grupo. Espero que podamos usar ng-container para evitar la adición de HTML:
<ng-container ngbRadioGroup name="radioBasic" formControlName="model"> <div class="btn-group btn-group-toggle" > <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="1"> Left (pre-checked) </label> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="2"> Middle </label> </div> <div class="row"> <div class="btn-group btn-group-toggle"> <label ngbButtonLabel class="btn-primary"> <input ngbButton type="radio" [value]="3"> Right </label> </div> </div> </ng-container>