Material radio button change event Angular 4

Set name property and change event to mat-radio-group in .html file:

    <mat-radio-button *ngFor="let opt of options" 

Then in component.ts file:

import { MatRadioChange } from '@angular/material';

radioChange($event: MatRadioChange) {
    console.log($, $event.value);

    if ($ === 'radioOpt1') {
        // Do whatever you want here

For Material version >= 6, refer to the following answer:

The following answer is for Material version < 6:

This happens because the change event is fired before the model has been updated. So your selected property has the previous value. Change your code to following to get the event on (change):

<md-radio-group [(ngModel)]="selected">
    <md-radio-button *ngFor="let a of array" [value]="a" (change)="radioChange($event)">

... and in your class, do the following:

import { MdRadioChange } from '@angular/material';
// ...

radioChange(event: MdRadioChange) {
    this.filter['property'] = event.value;

Link to working demo.