在Angular中动态禁用FormControl的反应形式

时间:2020-06-19 14:30:11

标签: typescript

我试图在我的单选按钮的FormControl组中禁用一个单选按钮,但这是不可能的。更改状态以禁用:ts文件中为true禁用一组单选按钮,而不仅仅是单个按钮。我的html:

<form [formGroup]="myForm">
  <radiobutton-group>
     Food:
    <radiobutton [FormControl]="myForm.get('food')" value="apple"></radiobutton>
    <radiobutton [FormControl]="myForm.get('food')" value="pear"></radiobutton>
    <radiobutton [FormControl]="myForm.get('food')" value="orange"></radiobutton>
  </radiobutton-group>
</form>

我的打字稿代码:

import { Component } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';


@Component({
  templateUrl: './radio-button-food.component.html'
})
export class RadioButtonFoodComponent {
  myForm: any = new FormGroup({
    food: new FormControl({ value: 'apple', disabled: false}),
    drink: new FormControl('coke'),
  });
 }

有人知道如何解决吗?要仅禁用一个单选按钮?将disable = true放在<radiobutton>里面是行不通的。

2 个答案:

答案 0 :(得分:0)

绑定到[attr.disabled]而不是模板中的[disabled]对我有用。

答案 1 :(得分:0)

您可以只设置或修补控件的值吗? 文档位于https://angular.io/api/forms/FormControl

示例代码:

myForm.controls['food'].patchValue({ value: 'apple', disabled: false});

通常,ng建议您不要将反应形式与禁用的html绑定属性混合使用。