Tengo un componente con dos botones de opción, HTML se ve así:
<div class="btn-group" id="ProfitCodes"> <div class="radio"> <label> <input type="radio" class="radio-inline" value="1" [checked]="model.ForeignCompany.ProfitCode === 1" [(ngModel)]="model.ForeignCompany.ProfitCode" id="point1" name="ProfitCode"><small>description</small> </label> </div> <div class="radio"> <label> <input type="radio" class="radio-inline" [(ngModel)]="model.ForeignCompany.ProfitCode" [checked]="model.ForeignCompany.ProfitCode === 2" value="2" id="point2" name="ProfitCode"><small>description</small> </label> </div>Cuando hago clic en guardar y enviar el modelo al servidor, veo un valor seleccionado válido del botón de opción en el lado del servidor. Y este valor almacenado en la base de datos sin errores. Pero el botón de opción con el valor apropiado no se verifica después de vincular los datos. En devTools veo el primer botón de opción:
<input class="radio-inline ng-untouched ng-pristine ng-valid" id="point1" name="ProfitCode" title="asdasda" type="radio" value="1" ng-reflect-name="ProfitCode" ng-reflect-value="1" ng-reflect-model="2" ng-reflect-checked="false">Segundo botón de opción:
<input class="radio-inline ng-untouched ng-pristine ng-valid" id="point2" name="ProfitCode" title="asd" type="radio" value="2" ng-reflect-name="ProfitCode" ng-reflect-value="2" ng-reflect-model="2" ng-reflect-checked="true">Veo que los atributos angulares cambiaron y espero que se marque el segundo botón de opción. Pero esto no sucede. ¿Qué estoy haciendo mal?
Esto funciona en mi caso. [(ngModel)]
<div class="radio"> <label> <input type="radio" value="1" [checked]="model.ForeignCompany.ProfitCode === 1" id="point1" (change)="onProfitSelectionChange(1)" name="ProfitCode"><small>description</small> </label> </div> <div class="radio"> <label> <input type="radio" value="2" [checked]="model.ForeignCompany.ProfitCode === 2" id="point2" (change)="onProfitSelectionChange(2)" name="ProfitCode"><small>description</small> </label> </div>y el método TS se parece a:
onProfitSelectionChange(entry): void { this.model.ForeignCompany.ProfitCode = entry; }No necesita [checked] . Prueba con [(ngModel)] . Además, use [value]="1" en lugar de value="1"
<input type="radio" name="Coverage" [value]="1" [(ngModel)]="formdata.coverage_verified" />Yes<label *ngFor="let status of statuses"> <input type="radio" name="name" [(ngModel)]="entity.status" [value]="status.id"> <b>{{ status.name | i18n }}</b> </label>