Angular 5禁用formControlName的最佳方法

时间:2018-02-16 05:51:52

标签: angular angular5 angular-reactive-forms

组件TS

checkStatus(){
    return this.editProspectMode;
}
return this.fb.group({
    prospect_pref_name: [{value: 'Nancy', disabled: this.checkStatus()}],
});

组件HTML

<input id="prospect_pref_name" type="text" formControlName="prospect_pref_name" [readonly]="!editProspectMode">

我希望在表单处于查看模式时将所有表单字段设置为只读

2 个答案:

答案 0 :(得分:1)

在您的收件人中添加<fieldset [disabled]="editProspectMode">。 例如

<form>
  <fieldset [disabled]="editProspectMode">
    //YOUR INPUT FIELDS GOES HERE 
  </fieldset>
</form>

这是工作小提琴,Disable Form on click

希望这有帮助!

答案 1 :(得分:1)

您可以在 TS

中禁用此类字段
 this.form = this.fb.group({
      fulName: [null, Validators.compose([Validators.required])],
      userLogin: new FormControl({value: '', disabled: false}, Validators.required),
    });

如果你想改变它的属性,比如启用你可以做这样的事情。

 this.form.controls.userLogin.enable();

修改

如果要禁用整个表单,可以使用

this.formGroup.disable();