J'ai déjà essayé de suivre l'exemple d'autres réponses d'ici et je n'ai pas réussi !
J'ai créé un formulaire réactif (c'est-à-dire dynamique) et je veux désactiver certains champs à tout moment. Le code de mon formulaire :
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: ['']
}));
mon 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>
J'ai réduit le code pour le faciliter. Je veux désactiver le champ de type select. J'ai essayé de faire ce qui suit :
form = new FormGroup({
first: new FormControl({value: '', disabled: true}, Validators.required),
});
ne fonctionne pas ! Quelqu'un a-t-il une suggestion ?
0 votes
Comment la sélection peut-elle être désactivée, alors que vous essayez de désactiver un formcontrol appelé
first
?` :)0 votes
C'était juste une erreur de frappe. Je veux désactiver la sélection. Pouvez-vous m'aider ?
0 votes
Pouvez-vous reproduire un plunker ?
0 votes
Essayez-vous de désactiver l'ensemble de la sélection ? Et
value
n'est pas un formArray, mais un formControlName. Si vous voulezvalue
pour être un formArray, il faudrait le modifier. Actuellement, il s'agit d'un formControlName. Ainsi, si vous souhaitez que l'ensemble du champ de sélection soit désactivé, il suffit de modifier l'attribut<select formArrayName="value">
à<select formControlName="value">