You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何点击按钮将Mat Radio Group的单选按钮重置为默认值?

解决Mat Radio Group评分重置问题

需求:使用Mat Radio Group和Mat Radio Button对游戏进行评分,选项为None、Good、Bad。点击“Apply Changes”按钮应用修改后,所有单选按钮需恢复为默认的None选项。

修改后的模板代码

<ng-container *ngFor="let s of sites">
  <div class="col-sm-12 col-md-5">
    {{s}}
  </div>
  <div class="col-sm-12 col-md-7">
    <mat-radio-group [(ngModel)]="gameRatings[s]">
      <mat-radio-button *ngFor="let o of options" [value]="o">
        {{o}}
      </mat-radio-button>
    </mat-radio-group>
  </div>
</ng-container>
<button (click)="resetRadio()">Apply Changes</button>

修改后的TypeScript代码

import { Component } from '@angular/core';

@Component({
  selector: 'app-rating-example',
  templateUrl: './rating-example.component.html',
  styleUrls: ['./rating-example.component.css']
})
export class RatingExampleComponent {
  sites: string[] = ['Tekken', 'Street Fighter', 'DBZ'];
  options: string[] = ['None', 'Good', 'Bad'];
  // 存储每个游戏的当前评分,初始化为默认的None
  gameRatings: {[key: string]: string} = {};

  constructor() {
    // 给每个游戏初始化默认评分
    this.sites.forEach(site => {
      this.gameRatings[site] = 'None';
    });
  }

  resetRadio(): void {
    // 重置所有游戏的评分为None
    this.sites.forEach(site => {
      this.gameRatings[site] = 'None';
    });
  }
}

关键改动说明

  • 移除原模板中[checked]="j===0"的硬编码逻辑,改用**双向绑定[(ngModel)]**绑定到gameRatings[s],实现选择状态与数据的实时同步
  • 新增gameRatings对象,专门存储每个游戏的当前评分,初始化时统一设为'None'
  • resetRadio方法通过遍历所有游戏,将对应评分值重置为'None',自动触发单选按钮恢复默认选中状态

内容的提问来源于stack exchange,提问作者ninja_md

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:40:58