【问题标题】:Angular2 Material RadioButton or Select from booleansAngular2 Material RadioButton 或从布尔值中选择
【发布时间】:2018-07-24 22:08:27
【问题描述】:

我有一个包含 3 个布尔值的表单。 我想使用材质选择或材质单选按钮组来强制只有一个布尔值为真。我可以在不使用自定义函数调用、事件或其他技巧的情况下以巧妙的方式做到这一点吗?

bnForm: FormGroup = this.fb.group({
    isContinuous: [true],
    isDiscrete: [false],
    isHybrid: [false]
});

有没有办法做这样的事情(它不起作用)?

<form [formGroup]="bnForm">
    <mat-radio-group>
        <mat-radio-button [value]="isContinuous">Continuous</mat-radio-button>
        <mat-radio-button [value]="isDiscrete">Discrete</mat-radio-button>
        <mat-radio-button [value]="isHybrid">Hybrid</mat-radio-button>
    </mat-radio-group>
</form>

【问题讨论】:

标签: angular angular-material angular-forms


【解决方案1】:

根据@ConnorsFan 的评论,如果这些值是互斥的,您可能更愿意做这样的事情 - stackblitz

标记

<form [formGroup]="form">
  <mat-radio-group formControlName="type">
    <mat-radio-button value="Continuous">Continuous</mat-radio-button>
    <br><br>
    <mat-radio-button value="Discrete">Discrete</mat-radio-button>
    <br><br>
    <mat-radio-button value="Hybrid">Hybrid</mat-radio-button>
  </mat-radio-group>
</form>

代码

export class RadioOverviewExample {
  form: FormGroup;

  constructor(private fb: FormBuilder) {
    this.form = this.fb.group({
      type: ['Continuous']
    });

    this.form.valueChanges.subscribe((simpleChanges: SimpleChanges) => {
      console.log(simpleChanges);
    });
  }
}

【讨论】:

    【解决方案2】:

    【讨论】:

    • 这应该是一条评论。
    • 我无法发表评论。因为我的声望不够。声望超过 50 的人可以添加评论。
    • 那么请详细说明您的答案。如您所见,人们已经对您的质量投了反对票。
    猜你喜欢
    • 2018-09-23
    • 2017-12-31
    • 2021-07-13
    • 2011-07-02
    • 2021-04-02
    • 2011-03-22
    • 2013-10-26
    • 2020-12-29
    • 2013-11-28
    相关资源
    最近更新 更多