Solución:
Esto sucede porque el evento de cambio se activa antes de que se actualice el modelo. Entonces tus selected
La propiedad tiene el valor anterior. Cambie su código a siguiente para que el evento comience (change)
:
<md-radio-group [(ngModel)]="selected">
<md-radio-button *ngFor="let a of array" [value]="a" (change)="radioChange($event)">
{{a}}
</md-radio-button>
</md-radio-group>
… y en tu clase, haz lo siguiente:
import { MdRadioChange } from '@angular/material';
// ...
radioChange(event: MdRadioChange) {
this.filter['property'] = event.value;
console.log(this.filter);
}
Enlace a demostración de trabajo.
Colocar name
propiedad y change
evento a mat-radio-group
en archivo .html:
<mat-radio-group
name="radioOpt1"
[(ngModel)]="selectedRadio"
(change)="radioChange($event)">
<mat-radio-button *ngFor="let opt of options"
[value]="opt">{{opt}}</mat-radio-button>
</mat-radio-group>
Luego, en el archivo component.ts:
import { MatRadioChange } from '@angular/material';
...
radioChange($event: MatRadioChange) {
console.log($event.source.name, $event.value);
if ($event.source.name === 'radioOpt1') {
// Do whatever you want here
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)