2016-02-19 3 views
0

, когда я первый раз нажмите на кнопку радио он не показывает значение,Сначала нажмите на радиокнопки не показывает значение

<md-radio-group [(value)]="sex" layout="row" > 
<md-radio-button value="Female" (click)="setSex(value)" >Female</md-radio-button> 
<md-radio-button value="Male" (click)="setSex(value)">Male</md-radio-button> 

и я пытаюсь получить значение в моем классе

public sex:String; 
public vm: String; 

    setSex(sex:String) { 
     if (this.sex) { 
     this.vm = this.sex; 
     console.log(this.sex) 
       } 
     } 

Example

ответ

1

Вы не можете использовать value в качестве аргумента события (это undefined). Я предлагаю вам создать локальные переменные шаблона, а затем вы можете передать их значения в обработчик событий:

<md-radio-button #r1 value="Female" (click)="setSex(r1.value)">Female</md-radio-button> 
<md-radio-button #r2 value="Male" (click)="setSex(r2.value)">Male</md-radio-button> 

, а затем это будет работать по желанию:

setSex(sex:String) { 
    console.log(sex); 
    ... 
} 
+0

Да, это работает для меня. Но это также странно для меня) – Slip

+0

@ Слайп, какая часть странная? –

1

Удалить обработчики нажмите:

<md-radio-button value="Female">Female</md-radio-button> 
<md-radio-button value="Male">Male</md-radio-button> 

Либо привязать к переменной модели, либо использовать обработчик кликов, но оба задают проблемы.

Смотрите здесь: http://plnkr.co/edit/e5Ko608lNDmasZGJFV1M?p=preview