首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >材质单选按钮更改事件角度4

材质单选按钮更改事件角度4
EN

Stack Overflow用户
提问于 2017-09-22 18:49:14
回答 2查看 100.4K关注 0票数 29

我正在尝试使用md-单选按钮的更改输出,如下所示:

代码语言:javascript
复制
<md-radio-group [(ngModel)]="selected">
    <md-radio-button *ngFor="let a of array" [value]="a"
                 (change)="radioChange()">
        {{a}}
    </md-radio-button>
</md-radio-group>

TS:

代码语言:javascript
复制
selected: string;
filter: any;

radioChange() {
    this.filter['property'] = selected;
    console.log(this.filter);
}

这似乎总是比单选按钮落后一步。即,当将选择从单选A更改为单选B时,它将console.log单选A的值。

任何帮助都将不胜感激。

干杯,

P

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-22 19:00:15

之所以会发生这种情况,是因为在模型更新之前触发了更改事件。因此,您的selected属性具有以前的值。将您的代码更改为以下代码,以获取(change)上的事件

代码语言:javascript
复制
<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>

..。在您的课堂上,执行以下操作:

代码语言:javascript
复制
import { MdRadioChange } from '@angular/material';
// ...

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

链接到。

票数 55
EN

Stack Overflow用户

发布于 2018-07-27 01:51:04

在.html文件中将name属性和change事件设置为mat-radio-group

代码语言:javascript
复制
<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>

然后在component.ts文件中:

代码语言:javascript
复制
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
    }
}
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46362951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档