Já tentei seguir o exemplo de outras respostas daqui e não consegui!
Criei um formulário reativo (ou seja, dinâmico) e quero desabilitar alguns campos a qualquer momento. Meu código de formulário:
this.form = this._fb.group({
name: ['', Validators.required],
options: this._fb.array([])
});
const control = <FormArray>this.form.controls['options'];
control.push(this._fb.group({
value: ['']
}));
meu html:
<div class='row' formArrayName="options">
<div *ngFor="let opt of form.controls.options.controls; let i=index">
<div [formGroupName]="i">
<select formArrayName="value">
<option></option>
<option>{{ opt.controls.value }}</option>
</select>
</div>
</div>
</div>
Reduzi o código para facilitar. Quero desativar o campo de seleção de tipo. Tentei fazer o seguinte:
form = new FormGroup({
first: new FormControl({value: '', disabled: true}, Validators.required),
});
não está funcionando! Alguém tem uma sugestão?
value
não é um formArray, é um formControlName. Se você quiser value
ser um formArray, terá que alterá-lo. Atualmente é um formControlName. Então, se você quiser que todo o campo de seleção seja desabilitado, basta mudar <select formArrayName="value">
para<select formControlName="value">
first
? `:)