首页 > 解决方案 > 如何设置禁用角度自定义组件

问题描述

我正在构建一些有角度的自定义组件,现在我正在实现接口 ControlValueAccessor 以提供模板/反应驱动的表单集成。

我的问题是如何将我的所有组件设置为禁用,就像我们可以在本机输入上做的那样

我试图像这样设置禁用:

setDisabledState(isDisabled: boolean): void {
    if(isDisabled) {   
        this.renderer.setProperty(this.elementRef.nativeElement, "disabled", true);
}
    else {
        this.renderer.setProperty(this.elementRef.nativeElement, "disabled", false);
    }
}

标签: angularcomponents

解决方案


尝试这个:[attr.disabled]="true"

<select name="modulo" id="modulo" class="form-control modulo" formControlName="id_modulo" [attr.disabled]="true">
        <option value="{{ m.id_modulo }}" *ngFor="let m of modulos" >{{m.nome_modulo }}</option>
      </select>

组件中的 FormBuilder:

this.formulariosForm = this.formBuilder.group({
      id_formulario: [null],
      nome_formulario: [null, Validators.required],
      descricao: [null, Validators.required],
      id_modulo: [null, Validators.required],
      analista_responsavel: [null, Validators.required],
      url: [null, Validators.required]
    });

推荐阅读