重置 Mat Radio Group 的 Mat Radio 按钮,以便在按钮点击时恢复到默认状态。

huangapple go评论54阅读模式
英文:

Reset Mat Radio Group's Mat Radio Buttons to default on a button click

问题

我有一组项目需要使用单选按钮进行评分。我使用了Mat Radio Group和Mat Radio按钮。就像下面这样,我需要对游戏进行好坏或无评分。应用更改后,所有单选按钮都应默认为"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>
      <mat-radio-button *ngFor="let o of options; let j=index"
        [checked]="j===0"
        [value]="o">
        {{o}}
      </mat-radio-button>
    </mat-radio-group>
  </div>
</ng-container>
<button (click)="resetRadio()">应用更改</button>

TypeScript 代码

export class App {

  sites: string[] = ['Tekken', 'Street Fighter', 'DBZ'];
  options: string[] = ['None', 'Good', 'Bad'];

  resetRadio(): void {
    
  }
}
英文:

I have a set of items to be rated using radio button. I used Mat radio group and Mat radio buttons. Like below, I have to rate games good bad or none. After applying the changes all the radio buttons should be defaulted to None. Please help me to complete this task.

Template

&lt;ng-container *ngFor=&quot;let s of sites&quot;&gt;
  &lt;div class=&quot;col-sm-12 col-md-5&quot;&gt;
    {{s}}
  &lt;/div&gt;
  &lt;div class=&quot;col-sm-12 col-md-7&quot;&gt;
    &lt;mat-radio-group&gt;
      &lt;mat-radio-button *ngFor=&quot;let o of options; let j=index&quot;
        [checked]=&quot;j===0&quot;
        [value]=&quot;o&quot;&gt;
        {{o}}
      &lt;/mat-radio-button&gt;
    &lt;/mat-radio-group&gt;
  &lt;/div&gt;
&lt;/ng-container&gt;
&lt;button (click)=&quot;resetRadio()&quot;&gt;Apply Changes&lt;/button&gt;

TypeScript code


  sites: string[] = [&#39;Tekken&#39;, &#39;Street Fighter&#39;, &#39;DBZ&#39;];
  options: string[] = [&#39;None&#39;, &#39;Good&#39;, &#39;Bad&#39;];

  resetRadio(): void {
    
  }

答案1

得分: 1

最好、简单且安全的方法是使用Angular 模板驱动表单响应式表单...但根据您的要求,您可以使用 @ViewChildren 装饰器来定位 MatButtonGroup 并设置 'None' 值。

这是一个示例:stackblitz

英文:

The best, easy and safe way is to use Angular template driven forms or Reactive Forms...but for your requirement you can use @ViewChildren decorator to target MatButtonGroup and set 'None' value.

this is an example : stackblitz

答案2

得分: 1

使用formGroup,您可以使用

private form: FormGroup = new FormGroup({....});

resetRadio(): void {
    this.form.reset();
}
英文:

Using formGroup, you can use

private form: FormGroup = new FormGroup({....

resetRadio(): void {
    this.form.reset();
}

huangapple
  • 本文由 发表于 2023年2月14日 19:18:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/75447060.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定