禁用FormControl不使用逻辑

时间:2018-02-19 05:49:06

标签: angular5 angular-reactive-forms

我想从ts文件中禁用字段。 我静态true/false时工作正常。但我想在逻辑上做到这一点。当我的表单处于编辑模式时,我将使字段可编辑。当视图模式中的表单将禁用字段。

  

您似乎正在使用带有被动形式的disabled属性   指示。如果将disabled设置为true         当您在组件类中设置此控件时,实际上将在DOM中设置disabled属性         您。我们建议使用这种方法,以避免在检查后更改'错误。

  Example: 
  form = new FormGroup({
    first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),
    last: new FormControl('Drew', Validators.required)
  });

更改模式时的逻辑

editProspectDetails() {
    this.editProspectMode = !this.editProspectMode;
    this.isProspectDisabled();
}

FormControl名称:

this.fb.group({
prospect_pref_name: new FormControl({value: '', disabled: this.isProspectDisabled()}),
})

isProspectDisabled(){
    return true; // working

    but i want to make it conditionally
    console.log(this.editProspectMode); // it will return : true/ false
    return this.editProspectMode;
}

1 个答案:

答案 0 :(得分:0)

您只需使用disable()禁用字段

即可

试试这个

this.fb.group({
prospect_pref_name: new FormControl(''),
}

并在editProspectDetails()

editProspectDetails() {
    this.editProspectMode = !this.editProspectMode;
    this.your_form_name.controls.prospect_pref_name.disable();
}