angular - Material 单选按钮更改事件Angular 4

标签 angular angular-material angular-material2

我正在尝试使用 md-radio-buttons 的更改输出,如下所示:

<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:

selected: string;
filter: any;

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

这似乎总是落后于单选按钮一步。即,当将选择从 radio A 更改为 radio B 时,它将控制台记录 radio A 的值。

如有任何帮助,我们将不胜感激。

干杯,

P

最佳答案

For Material version >= 6, refer to the following answer: https://stackoverflow.com/a/46037191/1791913


以下答案适用于 Material 版本 < 6:

发生这种情况是因为在更新模型之前触发了 change 事件。所以您的 selected 属性具有以前的值。将您的代码更改为以下以在 (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>

...在您的类里面,执行以下操作:

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

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

链接到 working demo .

关于angular - Material 单选按钮更改事件Angular 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46362951/

相关文章:

angular - 当焦点放在 Mat-Select 上时,在 Angular 中打开 Mat-Select 下拉菜单

angular - 使用 Material 数据表时 dataSource.connect 不是一个函数

angular - 如何使用响应式表单将表单绑定(bind)到 Angular 6 中的模型?

angular-material - MatCheckbox 没有被 ngcc 正确处理,或者与 Angular Ivy 不兼容

Angular Material MatSnackBar 默认持续时间

组件模块中的 Angular Material 拖放

angular - 如何将自定义类添加到 Angular Material 选项卡?

javascript - 显示 snackbar 后如何自动以 Angular 重新加载页面

angular - Ionic 4 如何从另一个页面获取数据

javascript - CSV 格式的 Angular 数据中的逗号相关问题