如何禁用角度自定义组件

时间:2019-07-05 15:59:36

标签: angular components

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

我的问题是如何将所有组件设置为“禁用”,就像我们可以在本机输入上进行的操作一样

我试图这样设置为禁用:

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

1 个答案:

答案 0 :(得分:0)

尝试以下操作:[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]
    });